假设有个类A,如下语句:A a;A b=a;
这时候的复制运算符会起作用,而且是以成员函数被调用的,等价于b.operate=(a)。如果不是成员函数,那么不能这样使用。另外,必须重载说法是有问题的,只有类里面有指针成员的时候才需要重载
假如这样可行的话,如果你所在的团队几个人分工写代码,本来各自代码部分都能正常运行,结果一拼接起来,由于你这样的要求,改变了别人写的函数的本意,例如double fuction(double a,double b) {return a+b;}结果返回了0,你的队友一定会打死你的。所以,为了你的生命安全,C++标准委员会禁止了这样的做法。