2.15 实现成员函数
C++面向对象高效编程(第2版)
下面是文件Int.cc的一部分:
// Print 成员函数的实现
#include <iostream.h>
#include “Int.h”
void TInt::Print() const
{
// cout是ostream的一个实例, ostream是一个标准的i/o流库类(stream library class)。
cout << "0x" << _mostSignificantPart << ", 0x" << _leastSignificantPart;
// 在此函数中对数据成员的任何赋值行为都视为非法
}```
理解代码
如果忽略类名TInt、::、后缀的`const`关键字,该声明看起来像是一个普通的函数:
void Print()
{
cout << "0x" << _mostSignificantPart << ",0x" << _leastSignificantPart;
}`
这是一个普通的函数。那么,如何识别(或者区分)类的成员函数?只需在函数名前添加类名和::。本例中,::是作用域解析操作符。TInt::Print说明Print()函数是TInt类的一个成员函数(该函数已在头文件中声明)。如果Print()函数未在Int.h头文件中声明,试图定义它将导致一个编译期错误。注意,在函数中,const限定符只能用于成员函数。根据以上的分析,在定义类的成员函数时,我们使用“类名::函数名”的语法,就这么简单。由于成员函数属于类,经过这样的处理后,即使在两个或多个类中使用同名成员函数也不会彼此发生冲突。在成员函数内部,我们可以访问类的任何元素(数据成员或者成员函数)。
时间: 2024-09-21 21:41:44