类成员运算符重载
(1)类成员操作符重载
c3 = c2 - c1;
该表达式的值为与c3相等的临时对象
(2)不含指针成员的类采用缺省赋值符即可,但是含有指针的类必须自定义赋值符,实现深复制
浅复制只是将指针指向另一块内存空间,原来所指向的内存空间将永久性消失,从而出现内存垃圾,不仅如此,还会出现释放同一块内存多次的情况,这是不允许的.
因此需要进行深复制,先释放原来的内存空间,然后重新分配内存空间,再把需要复制的内容拷贝到新的内存空间中,既避免了内存垃圾,也避免了指针别名.
注意,new 和 delete 必须成对使用, new了新的内存,但没有手动delete会出现runtime error
下标运算符重载
int& operator[](int index) {
return data[index];
}
友元运算符重载
常常是重载输入输出符, istream >> , ostream <<
域作用符不能够重载
友元函数可以访问该类的私有或者是受保护成员
破坏了类的封装性