版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/navicheung/article/details/82698352
C++程序设计(第三版) 谭浩强 习题10.1 个人设计
习题 10.1 定义一个复数类Complex,重载运算符“+”,使之能用于复数的加法运算。将运算符函数重载为非成员、非友元的普通函数。编写程序,求两个复数之和。
代码块:
#include <iostream>
using namespace std;
class Complex
{
public:
Complex(){real=0; imag=0;} //默认构造函数
Complex(double r, double i){real=r; imag=i;} //构造函数
static Complex get(Complex &, Complex &); //定义静态成员函数get
void display(); //定义成员函数display
private:
double real;
double imag;
};
//成员函数get,可以访问Complex类的私有变量
Complex Complex::get(Complex &c1, Complex &c2)
{
return Complex(c1.real+c2.real, c1.imag+c2.imag);
}
//重载运算符+函数,通过调用Complex类的公有函数get,达到访问Complex类私有变量的目的
Complex operator+(Complex &c1, Complex &c2)
{
return Complex::get(c1, c2);
}
//display函数
void Complex::display()
{
cout<<"("<<real;
if (imag>=0) cout<<"+";
cout<<imag<<"i)"<<endl;
}
int main()
{
Complex c1(2.5, 3), c2(4, -7), c3; //定义Complex类的对象c1,c2,c3
c3=c1+c2;
c3.display();
system("pause");
return 0;
}