友元:非类成员函数可以访问类的非公有成员(protected,private)
工程作用:提高程序运行效率(省去了函数调用返回等一系列时间)
友元的种类分为:友元函数,友元类(不传递,不继承,单向的),友元成员函数
类前置声明必须将类的成员函数类外实现(A放在Test上面)
含有友元成员函数的类必须在代码最前
运算符重载实际上就是函数的重载
运算符重载的特点:直观自然,提高程序的可读性
运算符重载规则:
1.特殊运算符:如果没有重载,且没有移动拷贝构造函数,系统会默认重载;必须以成员函数重载
2.注意:默认生成的重载是浅拷贝,两个S1都指向了同一个空间
深拷贝:
3.移动赋值运算符重载,解决的是临时对象拷贝开销问题
拷贝构造函数 ll My string ms3 (ms2)
运算符的类型:
1.【】:是双目运算符,但是必须以成员函数重载
2.+=:利用+实现+=
3.!:单目运算符,只能用成员函数重载
4.类型转换运算符:static-cast,istream(cin),ostream(cout)对象
5.流运算符:<<(输出流运算符)>>(输入流运算符)
6.流运算符重载:必须是友元函数重载
输入流:<<
输出流:>>
单目运算符:成员
双目运算符:友元
友元函数和运算符重载
最新推荐文章于 2024-05-21 18:46:12 发布