正文

运算符重载2006-04-28 11:47:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/yexin218/13325.html

分享到:

运算符重载

尽管c++不予续生成新的运算符,但是与徐冲在现有的大多数运算符,使这些元算符可以与类的对象结合使用,运算符具有新类型的定义!

 

用于类对象的运算符必须重载,但有两种情况例外:赋值运算符=无须显示重载就可以用于每一个类。赋值运算符的默认行为是类数据成员的逐个成员赋值运算符。这种默认复制行为对于带有指针的类是很危险的,我们将对这种类显示重载赋值运算符!同样地址运算符无须重载即可用于每一个类的对象,它只返回内存中的对象的地址。

 

运算符的重载不是自动完成的,程序员必须为索要执行的操作编写运算符的重载函数,有时候最好把这些函数用作成员函数,有时最好申明为有元函数!

 

C++唯一的三元运算符(?:)是不能被重载的!

 

在重载运算符()[],—〉或者任何赋值运算符是,运算符重载函数必须申明为类的一个成员函数,其他的运算符可以是非成员函数!

 

当运算符函数作为成员函时时显示,最左边的操作书必须是缘算符类的一个类对象(或者是引用)。如果左边的操作数是不同类的对象或者是一个内部类型的对象,该运算符函数必须是一个非成员函数来实现的!

 

重载<<元算符必须有一个ostream&类型的左操作数(cout<<classObject中的cout,因此它必须是一个非成员的函数。类似重载>>运算符必须有一个类型为istream&的左操作符(cin>>classObject中的cin),所以他也必须是一个非成员函数!

 

非成员函数不一定是有元函数!只要public类中提供了相应的getset方法!

阅读(2879) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册