对friend与operator,引用(总结)
- 什么时候用friend和operator
对于friend是用法,一般是operator当运算符重构的时候没有用对象加运算符而是把对象写在后面,这种时候用friend
2.为什么要用friend呢
因为friend可以当成是外部函数可以用自己类的成员,所有可以用friend,不然是不能定义在类里面的,就要把成员用函数的形式表达,
3.在operator环境下,引用的错误使用
#include
using namespace std;
class A{
int data;
public:
A(int a=0):data(a){;}
const A& operator+(const A &a){
A b;
return b;//ERROR
}
void display(){
cout<
为什么是错的因为,当class对象作用的是一个{}“括号”范围,当作用完后,对象自动被析构,而返回的是引用错误,相当于隐式指针,但是此代码的b已经被析构了所有无了
相当于是指针感觉是类似指针悬挂的东西 ,,和上问题1 2021//11/26相同也是函数里面的销毁