输出符重载

来源:百度知道 编辑:UC知道 时间:2024/06/17 22:03:32
#include "iostream"
using namespace std;
class complex
{
double imag,real;
public:
complex(double a,double b){real=a;imag=b;}
friend ostream& operator <<(ostream &i,complex &c1)//为什么要定义友元啊...还有关于&引用,引用是什么意思啊...什么情况下要引用啊..还有ostream &i,complex &c1具体的表示什么意思,,,不太清楚
{i<<c1.real<<c1.imag;
return i;
}
};
void main()
{
complex c1(1,2);
cout<<c1;
}

定义友元是为了在重载的函数体里可以使用private成员变量和方法,这样方便。

引用跟指针一样,都是地址。举个例子,你就明白了。

假设有变量a和如下两个函数
int a= 0;

void func1(int b) 和 void func2(int &b)

那么在使用func1(a)时,先把a的值赋给型参b,然后在函数体内使用b
而使用func2(a)时,b就是a的另一个名字罢了,函数体里对b的使用相当于直接使用a。

所以 func1不能改变a的值,而func2可以。

明白了没?

很很基础的东西 教材都很详细