ADT 友元函数 重载操作

来源:互联网 发布:腾讯数据体育 编辑:程序博客网 时间:2024/05/21 17:15

抽象数据类型(Abstract Data Type,ADT)

使用ADT遵循以下规则:

第一:将所有成员变量设为类的私有成员

第二:将用户程序员需要的每个基本操作都设置为类的公共成员函数,并完善地指定如何使用每个公共成员函数;

第三:将任何帮助函数设置为私有成员函数。

在成员函数下使用const 放在函数声明的后面如下 

class Money{     public:     void output(ostream& outs) const; }
修饰符const 要求同时用于函数声明和函数定义中所以函数output 的函数定义像下面那样:

void Money::output(ostream& outs) const{..................}

修饰符const 要么不用要么都用针对任何类参数以及类的成员函数,只要允许就应该使用修饰符const 如果const 并不是每次适合一个类,就永远不要为那个类使用它了。

使用<<插入操作符是二元操作符像+, -那样。

ostream& operator<<(ostream&outs,const Monday& amount){...........return 0;}

在返回类型中只要是操作符或者函数返回一个流,就必须在返回类型 名称末尾加一个&。这个简单的规则允许重载<<或>>

为返回值类型名称类型后面添加&意思是操作符或函数要返回一个引用,前面讲的所有函数和操作符只是一个返回值,但是如果一个返回值死一个流,就不能简单的返回流的值。

因为对于一个流,它的值可能是一个完整的文件,一个键盘或者屏幕,而返回的那些东西是没有什么意义的,所以你可考虑只返回流本身而不是流的值。为返回类型名称后面加一个& 就指明操作符或者函数要返回一个引用,着表示返回的是对象本身,而不是对象的值。