类的内部成员函数主要是对类内部的数据信息进行加工处理,公有的成员函数还可以接收外部的信息,从而对内部数据产生影响。成员函数可以有重载的成员函数,也可以有默认参数的成员函数。
成员函数在定义时,有两种方式:一种方式是在类内声明函数并实现函数;另一种方式是在类内声明成员函数,而把函数的实现部分放在类的外部。在类内声明并实现的形式,成员函数默认为内联函数。当类的成员函数的实现放在类的外部时,需要在成员函数头部分,在函数名前用类名和类的作用域区分符“::”,具体形式为“返回类型类名::成员函数名(参数列表)”,指名这个函数是成员函数,是属于某个类的。
一般设计程序采用在类外实现成员函数方式,把类的定义单独放在一个头文件(∗.h)中,使类的结构清晰明了。
【例2.4】采用类外实现成员函数的方式实现图书类的定义。改造例2.2中的程序的组织,把成员函数的实现放在类定义之外。
程序设计效果同例2.2。也可以把例2.4中的文件拆解为两个文件,一个文件为“book.h”,只有Book类的声明,不含成员函数的实现,第二个文件为“book.cpp”,其中有Book类的所有成员函数的实现。改造成两个文件后,头文件book.h文件不能编译,在book.cpp中包含。这样设计的程序代码更加清晰,对于使用类的使用者可以在头文件中直接阅读类的信息,而不需要关心类中的成员函数的实现,同时成员函数的实现算法也被隐藏了起来。对于设计类的设计者,成员函数的实现放在“.cpp”文件中,可以单独编译,及时调试算法,而不必等到创建对象时才能编译代码。把例2.4的“book.h”文件分解成两个文件如下。(www.daowen.com)
重点提示
在程序设时,单独把类声明(即类的计)放在头文中,类的实现(类内成员函数实现)放在一源文件中,这一个好的程序计编写方式,码清晰便于使和维护。
在例2.4中,数据成员name和price声明前有“protected:”,而成员函数前有“public:”修饰,这有什么用,有什么区别呢?
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。