3.1.2 C++(www.cppentry.com)的信息隐藏机制
C++(www.cppentry.com)的关键字private可用来隐藏类的数据成员和成员函数,关键字public可用来暴露类的数据成员和成员函数(C++(www.cppentry.com)还为信息隐藏提供了另一个关键字protected,见第4章)。面向对象设计的灵魂就是使用private隐藏类实现,使用public暴露类的接口。
例3-4
本例创建了一个Person类,它的接口包含两个公有成员函数setAge和getAge。它的实现则由一个unsigned类型的数据成员age组成。关键字public和private后面紧跟一个冒号:。
在本例中,关键字public比private先出现,但以下两种写法也是正确的:
后面这种写法显然不是一种好的风格,但它表明了private成员和public成员可以在类声明中交叉出现。
在getAge的声明中出现的关键字const用来表示getAge不会改变Person类的任何数据成员的值。在本例中,指的是不会改变unsigned数据成员age的值,这一点和setAge不同。3.3.3小节继续讨论关键字const的详细用法,此处主要讨论一些基本语法和重要概念。
Person类的客户(指Person类的对象的使用者)可通过调用setAge和getAge来请求Person类提供服务,因为这些成员函数是公有的;但客户不能访问属于类实现部分的数据成员age,因为age是私有的。例3-5展示了如何调用成员函数。
本例中,类声明部分包含了setAge和getAge成员函数声明。成员函数的声明只不过为成员函数提供了函数原型,我们还需要对这两个成员函数进行定义。本例未提供成员函数的定义,这些工作将在3.1.6小节完成。