C++实现复数Complex
来源:互联网 发布:网络摄像机组装配件 编辑:程序博客网 时间:2024/05/15 01:20
用C++实现一个简单的复数类,主要涉及四个默认成员函数:
(1)构造函数:在定义对象时初始化成员变量,函数名与类名相同,无返回值(void也不能有),对象实例化时系统自动调用
(2)拷贝构造函数:是一种特殊的构造函数,它由编译器调用来完成一些基于同一类的其他对象的构建及初始化。
(3)析构函数:析构函数并不是删除对象,而是在撤销对象的占用内存之前进行一些清理工作,函数运行结束时自动调用
(4)运算符重载:就是对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。
以下就是复数类函数的一些简单操作的程序代码:
#include<iostream>using namespace std;class Complex{public: Complex( double real = 0.0, double image = 0.0);//构造函数Complex(const Complex& c);//拷贝构造函数Complex& operator=(const Complex& c);//赋值运算符重载Complex operator+(const Complex& c);//加法运算符重载Complex operator-(const Complex& c);//减法运算符重载Complex operator*(const Complex& c);//乘法运算符重载Complex operator/(const Complex& c);//除法运算符重载Complex operator+=(const Complex& c);//加等Complex operator-=(const Complex& c);//减等Complex operator*=(const Complex& c);//乘等Complex operator/=(const Complex& c);//除等void display();//打印private:double _real;//实部double _image;//虚部};
接下来就是具体的函数实现void Complex::display(){cout << "(" << _real << "," << _image << "i)" << endl;} Complex::Complex(double real, double image){_real = real;_image = image;}Complex::Complex(const Complex& c){_real = c._real;_image = c._image;}Complex& Complex::operator=(const Complex& c){_real = c._real;_image = c._image;return *this;}Complex Complex::operator+(const Complex&c){Complex c1;c1._real = c._real + _real;c1._image = c._image + _image;return c1;}Complex Complex::operator-(const Complex&c){Complex c1;c1._real = _real-c._real;c1._image = _image -c._image;return c1;}Complex Complex::operator*(const Complex& c){Complex c1;c1._real = _real*c._real - _image*c._image;c1._image = _image*c._real + _real*c._image;return c1;}Complex Complex::operator/(const Complex&c){Complex c1;c1._real = (_real*c._real + _image*c._image) / (c._real*c._real + c._image*c._image);c1._image = (_image*c._real - _real*c._image) / (c._real*c._real + c._image*c._image);return c1;}Complex Complex::operator+=(const Complex& c){return Complex(_real += c._real, _image += c._image);}Complex Complex::operator-=(const Complex &c){return Complex(_real -= c._real, _image -= c._image);}Complex Complex::operator*=(const Complex &c){return Complex(_real *= c._real, _image *= c._image);}Complex Complex::operator/=(const Complex &c){return Complex(_real /= c._real, _image /= c._image);}int main(){Complex c1(2.0, 5.0);Complex c2(3.0, 6.0);Complex c3(c1);Complex c4 = c1 + c2;cout << "c4=";c4.display();Complex c5 = c1*c2;cout << "c5=";c5.display();c2 += c1;cout << "c2=";c2.display();c2 -= c1;cout << "c2=";c2.display();c3 *= c1;cout << "c3=";c3.display();c5 /= c1;cout << "c5=";c5.display();system("pause");return 0;}
阅读全文
0 0
- C++实现复数Complex
- 【C++】用拷贝函数实现一个复数类(complex)
- 【C++】c++复数类Complex
- 简单的复数Complex类实现
- 【C++】实现一个复数类(complex)(带有默认参数的构造函数 )
- 【C++】操作符重载及实现简单的复数类Complex
- 复数(Complex)类及FFT的C++实现
- 复数类Complex的Java实现(数据结构 例 1-4)
- 设计复数类complex
- 设计复数类Complex
- 设计复数类Complex
- 复数类Complex
- complex--创建复数
- 复数类Complex
- complex复数类
- C++ Complex复数类
- 复数类:class Complex
- 复数类:complex c++
- POJ
- LeetCode 205. Isomorphic Strings
- 230. Kth Smallest Element in a BST
- Combination Sum
- bzoj 3107: [cqoi2013]二进制a+b 数位dp
- C++实现复数Complex
- 认识HTML5的WebSocket
- Leetcode之Spiral Matrix II 问题
- 【LeetCode算法练习(C++)】Regular Expression Matching
- 习题6-5 巡逻机器人(Patrol Robot, ACM/ICPC Hanoi 2006, UVa1600)
- HDU-1061-Rightmost Digit【快速幂】
- 如何阅读开源代码
- 数据仓库
- 简析英雄联盟皮城女警近期改动的影响