请看如下类的封装:
#include<iostream>
using namespace std;
class Complex{
float r,i;
public:
Complex(float rr=0,float ii=0){r=rr;i=ii;}
Complex operator+(Complex );
void show()
{
cout<<r<<" "<<i<<endl;
}
void operator=(Complex );
};
Complex Complex::operator+(Complex c) //此处用不用引用一样.(为什么?)Complex &c
{
Complex t; //t为什么能访问自己的私有成员.
t.r=r+c.r; //此处为什么c可以访问它的私有成员.
t.i=i+c.i;
return t;
}
void Complex::operator=(Complex c)
{
r=c.r;
i=c.i;
}
int main()
{
Complex c1(25,50),c2,c3(100,150);
c2=c1+c3; //在devcpp下此步出错.为什么.而且错误提示是返回类型不匹配?
c2.show(); //也就是说在DEV下那两个东西也可以访问私有成员.只是无法返回.为什么?
system("PAUSE");
return 0;
}
以上程序在VC6.0下成功 .
有什么高见要评论一下^_^