第一友元函数访问私有元素时不会显示,但是是可以调用的(我使用的是gcc10.3版本的)友元函数可以访问任何元素。就是语法你别写错了。

继承如果父类已经写了构造函数,子类一定要赋值给构造函数,要么父类就别写,让编译器自己搞默认值。父类已经比如说int a在父类已经赋值了20,子类也是20。子类不能直接使用私有的,但是可以调用父类的方法。public:子类和父类一一对应,父类的protected与子类的public和protected对应,private:基类公有成员,子类中继承为自己的私有成员,在派生类可以访问,在外部不可以访问。基类保护成员,子类中继承为自己的私有成员,在派生类可以访问,在外部不可以访问。基类私有成员,子类一样不可以访问基类的私有成员,

运算符重载friend ostream & operator<<( ostream & os,const hj & c);friend 这个字符一定要加上不然出错,这个是重载输出运算符的,ostream &后面接个表名,然后接某个类,意思是这个类的对象输出是你想输出的

比如说

ostream& operator<<(ostream & os,const hj & c)
{
    os<<"sb";
    return os;
}

hj j(1,2);
 cout<<j;在运行这个时就会输出sb这个字符串

接下来就是跟堆紧密相关,如果是Java就直接new对象(因为Java虚拟机有垃圾回收器)就可以了,而在c++里面就要自己设计函数回收,不能直接new对象,因为new的对象只是堆里面的浅复制。

什么叫浅复制?就是你new的两个string对象(这两个值相同)指向同一个堆里面地方,就是你只是复制了那个对象的地址,并不会从新开辟一块空间,当你销毁一个对象时会把堆里面的那一块地方也销毁了,那你另一个就成空指针了。你们可能说,不销毁堆里面的空间不就没事了?不这解决不了问题,两个指针指向同一个地方,倘若我两个指针做不同的操作,岂不是会互斥。

声明指向堆中值的指针数据成员

声明与定义析构函数

声明与定义拷贝构造函数

这三个明天再说。(哎,我一打代码,他们就跟风,就那么喜欢跟我卷)

指针这个东西在c++里面可以说是很强大的。它可以快速的定位,只要你有地址,指针就可以指向你那个地方,并且修改里面的值。这就是为什么ce喜欢搞指针来做wai gua(这个我不说)

c++学习,和友元函数的更多相关文章

  1. C++学习12 友元函数和友元类

    友元函数和友元类在实际开发中较少使用,想快速学习C++的读者可以跳过本节. 一个类中可以有 public.protected.private 三种属性的成员,通过对象可以访问 public 成员,只有 ...

  2. c++学习之友元

    最近工作好累呀,晚上总是失眠,自学c++的步骤都放慢了,本来之前看c++ primer的,结果这本书讲的太细节了,初学者不是很好把握.所以我又重新找了个教程,比较适合初学者.今天学习到友元函数和友元类 ...

  3. C++学习之友元类和友元函数

    C++学习之友元类和友元函数       模板类声明也可以有友元,模板的友元可以分为以下几类:        1.非模板友元:        2.约束模板友元,即就是友元的类型取决于类被实例化的时候的 ...

  4. C++ 学习笔记(五)类的知识小结一(重载,友元函数,静态成员,new)

    ---恢复内容开始--- 学习C++类知识点还是挺多的,每个知识点学习的时候都觉得这个知识点咋那么多东西,其实真学完了再回头看好像也就那么点.这次用程序写一个黑猫揍白猫的故事总结一下这段时间学习的零碎 ...

  5. 初探C++运算符重载学习笔记&lt;2&gt; 重载为友元函数

    初探C++运算符重载学习笔记 在上面那篇博客中,写了将运算符重载为普通函数或类的成员函数这两种情况. 以下的两种情况发生.则我们须要将运算符重载为类的友元函数 <1>成员函数不能满足要求 ...

  6. C++学习之路—运算符重载(二)运算符重载作为类的成员函数和友元函数

    (根据<C++程序设计>(谭浩强)整理,整理者:华科小涛,@http://www.cnblogs.com/hust-ghtao转载请注明) 对运算符重载的函数有两种处理方式:(1)把运算符 ...

  7. C++编程学习(九)this指针&友元函数

    mooc西工大魏英老师的课程通道关闭了,难受.现在边看工程代码边重温刷第一遍C++时候的知识点,顺序没有按照大纲的来,想到哪写到哪. this是干啥用的? 简介:在 C++ 中,每一个对象都能通过 t ...

  8. C++基础——运算符重载友元函数示例

    一.前言 其实本人学习C++的目的,只是为了体会OOP设计思想,并为利用System Verilog验证复杂设计做准备.如果想要真正做点软件方面项目级的东西,还需要掌握其他高级语言和库.框架等知识.因 ...

  9. c++类模板之友元函数

    前言:自从开始学模板了后,小编在练习的过程中.常常一编译之后出现几十个错误,而且还是那种看都看不懂那种(此刻只想一句MMP).于是写了便写了类模板友元函数的用法这篇博客.来记录一下自己的学习. 普通友 ...

  10. C++的友元类和友元函数实例

    #include <math.h> #include<iostream> using namespace std; class Point { public: Point(do ...

随机推荐

  1. SpringBoot3安全管理

    目录 一.简介 二.工程搭建 1.工程结构 2.依赖管理 三.配置管理 1.核心配置类 2.认证数据源 3.认证流程 4.身份过滤器 四.核心功能 1.登录退出 2.权限校验 五.参考源码 标签:Se ...

  2. IDA的使用2

    IDA的使用2 string类型的选择 Rename 要注意如果再namelist和public name里面是不能重名 操作数 这个主要和开发结合精密, change sign-改变符号 bitwi ...

  3. 糟了糟了,总部被SD画完都Q了,这篇深入浅出贴助你早日实现Stable Diffusion自由

    我也不想标题党,可乐高积木版的总部大楼就是好萌啊! 我是憨憨,一个不会画画的设计师.过去半年里,AI绘画曾经多次引爆公众讨论,网络上那些精致的二次元同人插画.堪比真人的AI穿搭博主.打破次元壁的赛博C ...

  4. 【双系统】Win10/Win11 引导 Ubuntu

    目录 纲要 注意 写在最前 1. Win 分区 2. Ubuntu刻盘 3. 安装 Ubuntu 4. 配置引导 纲要 本文主要介绍了如何在已安装 Win10/Win11 前提下安装 Ubuntu 双 ...

  5. 小白整理了VUEX

    在小白开发的项目中前端使用的是Vue,虽然在日常工作中可以使用Vue进行开发工作.但是没有系统的学习过Vue,对Vue的一些特性和方法使用时常常需要查询资料解决问题,查询资料常常会占用大量时间,尤其对 ...

  6. redhat7 team bonding 双网卡绑定 主备 负载均衡

    team简介 team也被称为网络组,是将多个网卡聚合在一起,从而实现冗错和提高吞吐量.适用于redhat7.0以上版本,至多可支持8块网卡.team相对于之前的bonding技术,能提供更好的性能和 ...

  7. 你准备好了吗,9月19日Java21要来了

    前言 9月份的TIOBE编程语言榜单已公布,Python依然是第一,Java第四. 而这个月还有一个重要的事情,就是9月19日Java21将会全面发布,一段时间没关注的我一口老血喷在屏幕上. 我记得我 ...

  8. 「repost - from Quack」Matroid.md

    拟阵?type=header 拟阵的定义与常见性质 & 拟阵交算法 拟阵的定义与常见性质 独立集系统和拟阵 定义独立集系统\(S=(E,\mathcal{I})\),\(E\)是基本元素的集合 ...

  9. 如何使用Arduino创建摩尔斯电码生成器

    摩尔斯电码工作原理 摩尔斯电码发明于19世纪,使用非常简单的长短脉冲序列(通常为电和划)来远距离发送消息.通过将字母表中的字母编码为电和划的组合,信息可以只用一个单一的电子或声音信号来表达. 为了说明 ...

  10. Appendix D. Gradle Command Line

    http://www.gradle.org/docs/current/userguide/gradle_command_line.html Appendix D. Gradle Command Lin ...