5:06:48 数据类型总是与相关的运算相联系的 对类来说,一般情况下,调用类中提供的成员函数完成对 该类的对象的操作,但对某些类来说,这种方式显得很不 自然,不符合日常的思维习惯 例:复数加法 class complex[ loat real, image; public Complex(floa 0 i=0 存在的问题 复数在数学上有很规范的运算和运算符,但本类中用成员画 数而不是使用数学上的运算符代表对复数进行的数学运算, 显得很不自然,不符合人的思维习惯 改进: 对复数类提供重载的运算符 resu e dd (rig15:06:48 –数据类型总是与相关的运算相联系的 –对类来说,一般情况下,调用类中提供的成员函数完成对 该类的对象的操作,但对某些类来说,这种方式显得很不 自然,不符合日常的思维习惯 例:复数加法 class Complex{ float real,image; public: Complex(float r=0,float i=0); Complex(const Complex & c); Complex Add(const Complex & right); }; void main(){ Complex left(1,2),right(3,4); Complex result; result=left.Add(right); } 存在的问题: 复数在数学上有很规范的运算和运算符,但本类中用成员函 数而不是使用数学上的运算符代表对复数进行的数学运算, 显得很不自然,不符合人的思维习惯 改进: 对复数类提供重载的运算符