分享好友 行情首页 行情分类 切换频道
c++补充
2024-12-21 18:30  浏览:91

c++补充

友元的成员函数实现

B 类的成员函数 displayB 成为 A 类的友元。因为 A 类声明了 B 类的成员函数为其友元,而 B 类在 A 类之前还没有定义,编译器并不知道 B 的存在。因此,必须先前向声明 B 类

 

友元的全局函数实现

全局函数是不需要加作用域的

 

友元全局函数类内声明和类模板

 

友元全局函数类外声明和类模板

 
 
 

原因是当使用 p2 + p1 这样的语法时,首先编译器会检查 p2 所属的类型 Person,并且优先寻找该类型的成员函数中是否定义了 operator+ 运算符重载。如果找到了成员函数重载,则会调用它,因此调用的是 p2.operator+(p1),即 p2 是调用者,p1 是参数。

但是,如果没有成员函数版本的 operator+ 重载,编译器会再去寻找是否存在合适的全局函数版本 operator+(const Person&, const Person&)。但是例子中的成员函数和全局函数的 + 运算符重载都存在,所以成员函数的优先级更高。

 
 

左移运算符通常用于输出流,比如 std::cout,而输出流不是类的成员

当重载了 operator>> 运算符以处理自定义类型(如自定义的Maker 类)时,原有的 cin 操作对于基本类型(如 int 和 string)仍然有效,但当使用cin 对自定义类型进行输入时,编译器会优先选择自己定义的重载版本。

前置自增的语义是“先增加再使用”,所以返回引用是合适的。
后置自增的特点是“先使用当前值,然后再增加”,因此需要先保存当前对象的状态(即创建一个副本,在执行增加操作后返回这个副本。

 
 

MyArray.h

 

MyArray.c

 

MyArray_main.c

 
 
 
 
 
 

1.函数或类是通用,但是里面的数据类型的多种状态
2.模版有:函数和类

 
 
 
 
 
 

1、局限性

 

2、具体做法
demo1:(不建议 失去模板通用性)

 

demo2:

 
 
 
 
 
 
 
 
 
 
 
 
 
 

类模板的分文件编写出现的问题:
类模板中成员函数创建时机是在调用阶段,导致分文件编写时链接不到
解决:
解决方式1:直接包含.cpp源文件
解决方式2:将声明和实现写到同一个文件中,并更改后缀名为.hpp,hpp是约定的名称,并不是强制

解决方式1的分文件编写
person.h

 

person.c

 

90 类模板的分文件编写

c++补充

 
 
 
 

91 类模板的分文件编写2.cpp

 

对于模板类,编译器必须在编译时看到模板的全部实现,才能根据不同的模板参数生成相应的代码。

模板的二次解析机制:C++ 使用两阶段的模板解析。第一次解析是在模板定义时,只会检查语法而不会实例化模板。第二次解析是在模板被实例化时,这时候编译器需要看到所有模板相关的定义。
C++中有两种函数:全局函数和成员函数,二者区别如下: 全局函数位于对象和类之外,成员函数(也称为成员方法)位于类内
1、类中函数前面加friend的函数; 2、该函数不属于任何对象,其实就是一个全部函数,但是这个全局函数仅仅作用于该类的对象。 3、该函数可以访问该类的私有成员变量

 
 
 
 
 
 
 

vectorv1;//这个调用了std::vector的默认构造函数

std::vector v(10);//这个调用了std::vector的有参构造函数

vector v1 = {1, 2, 3}; // v1 初始化
vector v2 = v1; // 调用拷贝构造函数,v2 是 v1 的拷贝

vector(v)//创建了一个 std::vector 类型的临时对象,并使用已有的对象 v 进行初始化

支持随机访问迭代器的容器
std::vector

动态数组,支持快速随机访问,适合频繁访问和修改元素。
std::deque

双端队列,支持在两端快速插入和删除,同时支持随机访问。
std::array

固定大小的数组,支持随机访问,适合用于已知大小的数组。
std::string

字符串类,也可以视为字符数组,支持随机访问字符。

    以上就是本篇文章【c++补充】的全部内容了,欢迎阅览 ! 文章地址:http://w.yusign.com/quote/2510.html 
     行业      资讯      企业新闻      行情      企业黄页      同类资讯      网站地图      返回首页 述古往 http://w.yusign.com/mobile/ , 查看更多   
最新新闻
11月智能手机销量排行:华为四款旗舰备受瞩目手机排行「11月智能手机销量排行:华为四款旗舰备受瞩目」
年底的手机市场竞争空前激烈,各大厂商纷纷争抢最终的销售成绩。据最新数据显示,2024年11月国内智能手机销量排名的前20强中,华
10年前的AR游戏是什么样的老手机「10年前的AR游戏是什么样的」
现在,当我们谈论增强现实(Augmented Reality,AR)游戏的时候,脑海里跃出的是生动鲜活、叫声可爱的皮卡丘。AR游戏进化到这个
脂肪肝:四个民间中医方专治脂肪肝 | 民间中医趣话手机搜狐网「脂肪肝:四个民间中医方专治脂肪肝 | 民间中医趣话」
中医学苑 xyzych1988四个处方专治脂肪肝 脂肪肝是因脂质在肝内的堆积所致。根据肝细胞内脂滴大小不同,又可分为大泡性脂肪肝和小
车载手机支架固定方式有哪些车载手机支架「车载手机支架固定方式有哪些」
车载手机支架是为了方便驾驶员在行驶途中让手机放置在适当的位置,并方便拿下来或者直接进行操作,方便及安全是基本要求。车载手
小米SU7大定乌龙事件,不少误按锁定要求退定金,华为博主解析抢手机「小米SU7大定乌龙事件,不少误按锁定要求退定金,华为博主解析」
小米SU7发布开始大定,结果大定成绩非常好:4分钟大定破万,27分钟大定破5万。2万定金的创世版本是直接锁定无法退的,创世版本外
steam手机版官方正版steam手机版下载「steam手机版官方正版」
Steam手机版官方正版,由Valve Corporation精心开发,旨在为移动端用户带来该平台的核心体验。这一轻量级应用让用户能够轻松注册
【木】【漫画】写实向格斗漫画——捍卫圣域手机搜狐网「【木】【漫画】写实向格斗漫画——捍卫圣域」
《捍卫圣域HOLYLAND》是森恒二的出道作,根据自身少年街斗的经历和练习格斗技的经验创作的写实向格斗漫画。在阅读过程中,个人可
天津有位“落场版”球衣收藏达人手机搜狐网「天津有位“落场版”球衣收藏达人」
“落场版”球衣,啥意思,简单说,就是球员们赛后直接脱下来的比赛服,没洗过,带着“汗味儿和DNA”。早听说过国外有球迷专门收藏这种
steam官方手机版steam手机版下载「steam官方手机版」
Steam官方手机版是一款非常实用的游戏聚合平台,由著名的Valve Corporation开发。V社以其卓越的游戏开发而闻名,而Steam则是全球
steam手机版最新版steam手机版下载「steam手机版最新版」
steam手机版最新版是一款资源众多的游戏社交软件,用户可以在其中找到大量的游戏资源,这些都是免费的,最新的线下游戏资源会第
本企业新闻
推荐企业新闻
发表评论
0评