不能重载的运算符
. :: .* ?: sizeof
重载为成员函数时 不能作为左值的 不能返回引用
要能作为左值 则返回引用
左移右移运算符的重载
返回值不作为重载判断的标准
c++通过一个占位参数来区分前置和后置运算
Complex operator ++(int);
Complex &operator ++();
Complex Complex::operator++(int)//后置增量
{
Complex tmp =(*this); //c1++=>原来的值(tmp)
m_a++;
m_b++;
return tmp; //c1=>增量后(*this)
}
Complex &Complex::operator++() //前置增量
{
++m_a;
++m_b;
return *this;
}
重载流输入输出运算符只能声明为友元函数
friend ostream &operator <<(ostream &out, const Complex &cc);
运算符重载时 形参一般为对象的常引用 目的是为了保护实参不被修改
Complex operator +(const Complex &c);
参数使用对象的引用好处是节省空间 效率高
&&和||不要重载 因为会违背短路原则
友元函数重载运算符常用于运算符的左右操作数类型不同的情况
当无法修改左操作数的类时,使用全局函数进行重载
=, [], ()和->操作符只能通过成员函数进行重载
静态成员函数没有默认的this指针 只能对静态数据成员进行操作 不能直接访问类的非静态数据成员
常数据成员的初始化只能通过构造函数的成员初始化列表形式来实现
Student *s1[10] //对象指针数组 是一个数组 其数组元素是指向相同类的对象的指针
Student (*s1)[10] //指向对象数组的指针 是一个指针 指向有10个对象的数组