运算符重载是方便你进行类对象与类对象之间的换算
注意是类对象,而不是变量
变量之间的数学运算是默认的,但你自己写的类之间进行运算,如果不用运算符重载是编译不通过的
比如你的例1
如果不写运算符重载函数是无法执行a1+a2的,因为它们是类对象,编译器不知道如何去执行+运算
另外,a1就是a类的,显然是可以访问自己类的私有成员的
最后,const成员不是不可以在类中初始化,只是不能写成const int c=5;这种形式,要么在类外初始化,要么在构造函数中初始化,都是可以的
例2中并不是更换其值,而是给了你两个构造函数。在用第一个构造函数时对象的num_of_roots默认值是1,用第二个构造函数时对象的num_of_roots默认值是2
童鞋,我认为这个题目非常的好,希望你可以好好的体会一下,这个题目的解决如果要是不吧char* b改成Complex& b; charc=chara+charb;//这段就会