• 2022-11-04
    【编程题】 分别用成员函数和友元函数重载运算符,使对实型的运算符=、+、-、*、/ 适用于复数运算。
  • #include [iostream.h] class complex //复数类声明 { public: //外部接口 complex(double r=0.0,double i=0.0) //构造函数 {real=r,imag=i;} complex operator +(complex c2); //运算符"+"重载成员函数 complex operator - (complex c2); //运算符"-"重载成员函数 complex operator *(complex ); complex operator /(complex); complex operator =(complex c2) {real=c2.real;imag=c2.imag; return complex(real,imag); } void display(); //输出复数 private: //私有数据成员 double real; //复数实部 double imag; //复数虚部 }; complex complex::operator + (complex c2) //重载运算符函数实现 { return complex(real + c2.real,imag + c2.imag); } //创建-个临时无名对象作为返回值 complex complex::operator - (complex c2) //重载运算符函数实现 { return complex(real - c2.real,imag - c2.imag); } complex complex::operator *(complex c2) { double x,y; x=real*c2.real-imag*c2.imag; y=real*c2.imag+imag*c2.real; return complex(x,y); } complex complex::operator /(complex c2) { double x,y,z; x=real*c2.real+imag*c2.imag; y=real*c2.imag-imag*c2.real; z=real*c2.real+imag*c2.imag; return complex(x/z,y/z); } void complex::display() { cout<<"("<

    内容

    • 0

      运算符“.”称为 运算符,运算符“ -> ”称为 运算 符

    • 1

      若用成员函数重载运算符加号“+”,实现a+b运算,则 ( ) 。

    • 2

      下面有关重载的说法中,错误的是 ( )。 A: 函数重载要求同名函数在参数个数或参数类型上不同 B: 运算符重载是用同一个运算符针对不同类型数据进行不同的运算操作 C: 所有的运算符都可以重载 D: 运算符重载函数通常是类的成员函数和友元函数

    • 3

      以下关于运算符重载的叙述中,正确的是( )。? 重载二元运算符时,必须声明两个形参|有的运算,其运算符只能作为友元函数重载|通过运算符重载,可以定义新的运算符|若重载运算符‘+’,则相应的运算符函数名为

    • 4

      下面有关运算符重载的说法中,正确的是()。 A: 非静态成员函数重载运算符时带有this指针 B: 友元函数重载运算符时带有this指针 C: 成员函数与友元函数重载运算符时都不带有this指针 D: 用成员函数或友元函数重载同一运算符时,两者的参数类型与参数个数相同