ug10.0拐角倒角:为什么重载双目运算符不能成为成员函数??程序在里面
来源:百度文库 编辑:杭州交通信息网 时间:2024/05/21 23:48:33
#include<iostream.h>
class complex{
public:
complex(){real=0;imag=0;}
complex(double r,double i){real=r;imag=i;}
complex operator+(complex &a1,complex&a2);
void show();
private:
double real;
double imag;
};
complex complex::operator+(complex &a1,complex &a2){
return complex(a1.real+a2.real,a1.imag+a2.imag);}
void complex::show(){
cout<<real<<" "<<imag<<endl;
}
int main(){
complex s1(2,4),s2(12,14),s3;
s3=s1+s2;
s3.show();
return 0;
}
class complex{
public:
complex(){real=0;imag=0;}
complex(double r,double i){real=r;imag=i;}
complex operator+(complex &a1,complex&a2);
void show();
private:
double real;
double imag;
};
complex complex::operator+(complex &a1,complex &a2){
return complex(a1.real+a2.real,a1.imag+a2.imag);}
void complex::show(){
cout<<real<<" "<<imag<<endl;
}
int main(){
complex s1(2,4),s2(12,14),s3;
s3=s1+s2;
s3.show();
return 0;
}
你这个+函数被声明成了complex类的成员函数,调用+函数的complex类的实例会被认为是+左边的操作数,因此只要提供一个右边的操作数就行了。
按你的main函数的代码,你应该把+函数声明成complex的友员函数,而不是它的成员函数。
重载双目运算符,两个参数只能是友元函数啊。要成为成员函数,只能一个参数啊。
为什么重载双目运算符不能成为成员函数??程序在里面
运算符重载函数根据什么定义它为成员函数还是友元函数的?
为什么插入运算符>>只能声明重载为友元函数
什么是运算符重载??
谁帮我讲讲运算符重载是怎么回事,为什么要重载
一Sample类模板的私有数据成员为T n在该类模板中设计一个operator==重载运算符函数比较各对象n数据是否相
Sample类模板的私有数据成员为T n 该类模板中设计一个operator==重载运算符函数 比较各对象n数据是否相等
VC调试中遇到的构造函数和运算符重载的错误
c++中如何运用运算符重载来让一个对象返回他的成员变量(字符串)
定义一个有理数类,重载比较运算符.写一个完整的程序,进行数据成员的设置和输出