<pre name="code" class="cpp">/****************************************************************************************** complex.hpp: Copyright (c) Bit Software, Inc.(2013), All rights reserved. Purpose: 声明并实现一个复数类 难度:** Author: xxx Created Time: 2015-4-26 ******************************************************************************************/ #ifndef COMPLEX_HPP_INCLUDED #define COMPLEX_HPP_INCLUDED #include <iostream> using namespace std; class complex { public: // 带缺省值的构造函数 complex (double real = 0, double image = 0) :_real(real) ,_image(image) { cout<<"complex (double real = 0, double image = 0)"<<endl; } // 析构函数 ~complex() { cout<<"~complex()"<<endl; } // 拷贝构造函数 complex (const complex& d) :_image(d._image) ,_real(d._real) { cout<<"complex (const complex& d)"<<endl; } // 赋值运算符重载 // 思考为什么operator=赋值函数需要一个date&的返回值?? complex& operator= (const complex& d) { cout<<"operator= (const complex& d)"<<endl; if (this != &d) { this->_real = d._real; this->_image = d._image; } return *this; } // 取地址运算符重载 complex* operator& () { cout<<"operator&()"<<endl; return this; } // const修饰的取地址运算符重载 const complex* operator& () const { cout<<"operator&() const"<<endl; return this; } void display() { cout<<"real:"<<_real<<"--image:"<<_image<<endl<<endl; } complex operator+(const complex& c) { cout<<"operator+(const complex& c)"<<endl; return complex(_real+c._real,_image+c._image); } complex operator-(const complex& c) { cout<<"operator-(const complex& c)"<<endl; return complex(_real-c._real,_image-c._image); } complex operator*(const complex& c) { cout<<"operator*(const complex& c)"<<endl; return complex(_real*c._real-_image*c._image,c._image*_real+_image*c._real); } complex operator/(const complex& c) { cout<<"operator/(const complex& c)"<<endl; return complex<span style="font-family: Arial, Helvetica, sans-serif;">((_real/c._real+_image*c._image)/(c,_real*c._real+c._image*c._image),(_image*c._real-_real*c._image)/(c,_real*c._real+c._image*c._image))</span><span style="font-family: Arial, Helvetica, sans-serif;">; </span> } private: double _real; double _image; }; #endif // COMPLEX_HPP_INCLUDED
主函数:
#include "complex.hpp" int main() { //test_complex1(); cout << "**********************" << endl; complex a(1.1,2.2); complex b(3.3,4.4); complex c; c = a + b; c.display(); c = a - b; c.display(); c = a * b; c.display(); c = a / b; c.display(); return 0; }
时间: 2024-10-31 05:02:05