锻炼类内声明,类外实现的写法---使用作用域符号::
1)友元--friend--让一个函数或类访问另一个类中私有成员
1)全局函数做友元
在类中用friend声明全局函数是友元即可
2)类做友元
在类中用friend声明类是友元即可
3)类中成员函数做友元
在类中用friend声明类中成员函数是友元即可
2)运算符重载--对已有的运算符重新进行定义,赋予其另一种功能,以适用不同的自定义数据类型---operator运算符
1)加号运算符重载--实现自定义数据类型相加运算
成员函数--本质:类名 p3 = p1.operator+(p2)
全局函数重载--本质:类名 p3 = operator+(p1,p2)
运算符重载也可以发生函数重载
内置数据类型不能改变运算方式
2)左移运算符重载
1)不会利用成员函数来重载<<运算符---因为无法实现cout在左侧
2)只能利用全局函数来重载<<运算符
-----cout输出流(ostream)对象--返回为输出流对象的引用(链式编程)
-----
ostream& operator<< (ostream &cout, Person &p)
{
cout << " m_A = " << p.m_A << "m_B" <<p.m_B;
return cout;
}
3)递增运算符重载
4)赋值运算符重载
5)关系运算符重载
6)函数调用运算符重载
原文:https://www.cnblogs.com/MissZhang-154/p/13216401.html