重载>>和<<

来源:百度知道 编辑:UC知道 时间:2024/05/20 13:54:52
1 为什么要重载他们?

2 怎么重载,请举例说明

比如你要输出一个对象怎么办
cout<<对象吗?
应该重载<<.看下面的例子

#include<iostream.h>//vc有bug,这里不能用std名称空间表示.
class A
{
public:
int a;
public:
A(){a=2;}
friend ostream & operator <<(ostream &out,A&obj);
};
ostream &operator <<(ostream & out, A&obj)
{
out<<obj.a<<endl;
return out;
}
void main()
{
A obj;
cout<<obj;
}

重载<<和>>可以直接对对象进行IO操作.

e.g.
class Ca {
...
};

...
Ca ca;
cin >> ca; //只有对类Ca重载了>>才可以这样.

自定义类的赋值运算符重载函数的作用与内置赋值运算符的作用类似,但是要要注意的是,它与拷贝构造函数与析构函数一样,要注意深拷贝浅拷贝的问题,在没有深拷贝浅拷贝的情况下,如果没有指定默认的赋值运算符重载函数,那么系统将会自动提供一个赋值运算符重载函数。

赋值运算符重载函数的定义与其它运算符重载函数的定义是差不多的。

下面我们以实例说明如何使用它,代码如下:

C++ 代码 //程序作者:管宁
//站点:www.cndev-lab.com
//所有稿件均有版权,如要转载,请务必著名出处和作者