这段函数可以直接复制就跑的起来,在这里看不清楚的可以复制到编译器里看。需要注意的就是复制到cpp文件里,别复制到.c文件。
#include
using namespace std;
//定义了一个复数类
class complex
{
public:
int a;
int b;
public:
//这里就是运算符重载了。。不过如果一时间看不懂可以先从后面的主函数看起。
complex operator+(complex &c)
{
complex temp(this->a + c.a, this->b + c.b);
return temp;
}
complex operator-(complex &c)
{
complex temp(this->a -c.a, this->b - c.b);
return temp;
}
complex operator*(complex &c)
{
complex temp(this->a * c.a-this->b*c.b, this->a*c.b + c.a*this->b);
return temp;
}
complex operator/(complex &c)
{
complex temp((this->a * c.a - this->b*c.b) / (c.a*c.a + c.b*c.b), (this->a*c.b + c.a*this->b) / (c.a*c.a + c.b*c.b));
return temp;
}
complex dot(complex &c)
{
complex temp(this->a*c.a, this->b*c.b);
return temp;
}
public:
//这里是默认的构造函数。必须要有哦。
complex(int a = 0, int b = 0)
{
this->a = a;
this->b = b;
}
//析构函数
~complex()
{
}
public:
void printCom()
{
cout<< a << " + " << b<< "i " << endl;
}
private:
};
void main()
{
cout << "程序开始" << endl;
//这里定义了两个复数类对象,调用了类的默认构造函数。如果是函数传参的话会调用拷贝构造函数。
complex c1(1, 2), c2(1, -2);
cout << "c1和c2的值" << endl;
c1.printCom();
c2.printCom();
//加
cout << "加" << endl;
complex c_test = c1 + c2;
c_test.printCom();
//减
cout << "减" << endl;
c_test = c2 - c1;
c_test.printCom();
//乘
cout << "乘" << endl;
c_test = c2*c1;
c_test.printCom();
//除
cout << "除" << endl;
c_test = c1 / c2;
c_test.printCom();
//内积
cout << "内积" << endl;
c_test = c1.dot(c2);
c_test.printCom();
cout<< "程序结束" << endl;
}