小菜,重载运算符函数的疑惑
小菜求救,重载运算符函数的疑惑
为什么运算符函数operatar=必须重载为成员函数而不能是友元函数?
*=却可以啊.
运算符函数operatar=为什么返回值不能是void而++.*=就可以呢?
这=真特殊啊= =,
不能被继承这个还能理解
------解决方案--------------------
个人理解
c++的类的构造函数、拷贝构造函数、拷贝赋值操作符和析构函数是特殊成员函数,=就是这么特殊
如果类内不定义=运算就会默认生成一个浅拷贝赋值的函数,再在类外尝试重载就不行了
为什么运算符函数operatar=必须重载为成员函数而不能是友元函数?
*=却可以啊.
运算符函数operatar=为什么返回值不能是void而++.*=就可以呢?
这=真特殊啊= =,
不能被继承这个还能理解
------解决方案--------------------
个人理解
c++的类的构造函数、拷贝构造函数、拷贝赋值操作符和析构函数是特殊成员函数,=就是这么特殊
如果类内不定义=运算就会默认生成一个浅拷贝赋值的函数,再在类外尝试重载就不行了