习题 10.3 定义一个复数类Complex,重载运算符“+”,使之能用于复数的加法运算。参加运算的两个运算量可以都是类对象,也可以其中有一个是整数,顺序任意。编程序,分别求两个复数之和、。。。

C++程序设计(第三版) 谭浩强 习题10.3 个人设计

习题 10.3 定义一个复数类Complex,重载运算符“+”,使之能用于复数的加法运算。参加运算的两个运算量可以都是类对象,也可以其中有一个是整数,顺序任意。例如:c1+c2,i+c1,c1+i均合法(设i为整数,c1,c2位复数)。编程序,分别求两个复数之和、整数和复数之和。

代码块:

#include 
using namespace std;
class Complex
{
public:
    Complex(){real=0; imag=0;}                         //默认构造函数
    Complex(double r){real=r; imag=0;}                 //转换构造函数
    Complex(double r, double i){real=r; imag=i;}       //构造函数
    friend Complex operator+(Complex c1, Complex c2);  //重载运算符+函数为友元函数
    void display();                                    //定义display函数
private:
    double real;
    double imag;
};
//重载运算符+函数
Complex operator+(Complex c1, Complex c2)
{
    return Complex(c1.real+c2.real, c1.imag+c2.imag);
}
//display函数
void Complex::display()
{
    cout<<"("<if (imag>=0) cout<<"+";
    cout<"i)"<int main()
{
    Complex c1(4, 5), c2(3, -7), c3;      //定义Complex类对象c1,c2,c3
    int i;
    c3=c1+c2;
    c3.display();
    cout<<"Please enter number: ";
    cin>>i;
    c3=i+c1;
    c3.display();
    c3=c1+i;
    c3.display();
    system("pause");
    return 0;
}

你可能感兴趣的:(C++程序设计,(第三版),谭浩强,课后答案)