回 帖 发 新 帖 刷新版面

主题:[原创]C++中运算符重载的问题

#include <iostream.h>
class complex
{
public:
complex() {real=image=0;}
complex(double r, double i)
{real=r;image=i;}
complex operator +(const complex &c); 
complex operator -(const complex &c); 
complex operator *(const complex &c); 
complex operator /(const complex &c); 
friend void print(const complex &c);
private:
    double real,image;
};
以下略
complex operator +(const complex &c); 这里将+重载后面又出现c是什么意思啊
这里的+重载有什么意义?
谢谢各位,我真的是看的很晕啊

回复列表 (共1个回复)

沙发

这是一个复数类,复数的加法(减法……)必须有两个操作数,其中一个是被调用的对象本身,另外一个就是参数const complex &c。这里的运算符重载是作为成员函数存在的,所以参数个数=操作数-1。如果以友元形式的话,一般情况下参数个数=操作数。(增量运算符是特例)
详细情况可以看看《易学C++》第16章。

我来回复

您尚未登录,请登录后再回复。点此登录或注册