如何将运算符重载函数重载成一般函数形式#include using namespace std;cl
答案:2 悬赏:10 手机版
解决时间 2021-02-20 20:53
- 提问者网友:我一贱你就笑
- 2021-02-20 11:17
如何将运算符重载函数重载成一般函数形式#include using namespace std;cl
最佳答案
- 五星知识达人网友:狂恋
- 2021-02-20 12:47
你的问题关键出在const成员函数上.这个概念你或许不常见,我先给你说一下,之后给你解决办法.---------------------const成员函数---------------------------类的const成员函数的格式为:返回类型 函数名() const{...}也就是在函数名后面加一个const.类的这种成员函数不允许改变类的成员数据值,也就是说在这种函数体内,不能有改变(或企图改变)类的成员数据的操作,否则会发生编译错误.比如:class A{public:int a;void f() const{a = 1;}};这是错误的,因为f()中改变了成员数据a的值.再如:class A{public:int a;void set(){a = 1;}void f() const{set();}};这也是错误的,因为set()函数会改变成员数据的值,在f()中不应调用它.再如:class A{public:int a;void set(){}void f() const{set();}};这仍然是错误的.虽然在set()中并有改变a的值,但由于set()函数不是const函数,编译器仍然“认为”它会改变a的值,所以在f()中也不能调用set().只要一个函数不被const修饰,编译都认为它会改变成员数据的值!不光const函数如此,被const修饰的对象的值也是不允许改变的.比如你程序中的参数const Cube& aBox.---------------------你的问题---------------------------下面我说一下你的程序.在你的operator
全部回答
- 1楼网友:北方的南先生
- 2021-02-20 13:59
好好学习下
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯