首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

暑假C++温习14

2012-08-03 
暑假C++复习14为类设计操作符的时候,必须选择是将操作符设置为类成员还是普通非成员函数,在某些情况下,程

暑假C++复习14

为类设计操作符的时候,必须选择是将操作符设置为类成员还是普通非成员函数,在某些情况下,程序员没有选择,操作符必须是成员,在另一些情况下,有些经验原则可知道我们做出决定,下面是一些指导原则。有助于决定将操作符设置为类成员还是普通非成员函数。

(1)赋值(=)下标[]调用()和成员访问->等操作符必须定义为成员,将这些操作符定义为非成员函数将在编译时标记为错误。

(2)像赋值一样,复合赋值操作符通常应定义为类的成员。与赋值不同的是,不一定非得这样做,如果定义非成员复合赋值操作符,不会出现编译错误。

(3)对称的操作符,如算术操作符,相等操作符,关系操作符和位操作符,最好定义为普通非成员函数。


1,输出操作符的重载:

为了与IO标准库一致,操作符应接受ostream&作为第一个形参,对类类型const对像的引用作为第二形参,并返回ostream的引用。

重载输出操作符的一般的简单定义:

int i=42;absInt absObj;unisgned int ui=absObj.operator()(i);

尽管absobj是一个对象而不是函数,我们仍然可以“调用”该对象,效果是运行有absObj对象定义的重载函调用操作符。该操作符接受一个int值并返回它的绝对值。

注意:函数调用操作符必须声明为成员函数,一个类可以定义函数调用操作符的多个版本,有形参的数目或类型加以区别。

定义了调用操作符的类,其对象长陈伟函数对象,即他们是行为类似函数的对象。


热点排行