浏览 2479 次
锁定老帖子 主题:C++中重载运算符(1)
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-11-02
最后修改:2010-11-02
重载运算符的函数一般格式如下: 重载运算符 operator 运算符名称(形参表列) 例如,想将“+”用来Complex类(复数类)的加法计算,函数的原型可以: Complex operator+(Complex &c1,Complex &c2);
operator是关键字,专门用来定义重载运算符的函数的。我们可以把operator+看作函数名,意思是“对运算符+重载”。
#include "stdafx.h" #include <iostream> using namespace std; //复数 class Complex { private: double real; double imag; public: Complex() { real=0; imag=0; } Complex(double r,double i) { real=r; imag=i; } Complex operator+(Complex &c2); void display(); }; //把operator+看作函数 Complex Complex::operator+(Complex &c2) { Complex c; c.real=real+c2.real; c.imag=imag+c2.imag; return c; } void Complex::display() { cout<<"("<<real<<","<<imag<<"i)"<<endl; } int main(int argc, char* argv[]) { Complex c1(3,4),c2(5,-10),c3; c3=c1+c2; cout<<"c1=";c1.display(); cout<<"c2=";c2.display(); cout<<"c3=";c3.display(); return 0; } 实现截图:
C++编译系统会将程序中的表达式c1+c2解释为c1.operator+(c2)。。。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |