理论教育 面向对象程序设计:访问控制符解析

面向对象程序设计:访问控制符解析

时间:2023-10-25 理论教育 版权反馈
【摘要】:类的访问控制符有public、protected和private。表2-1访问控制符在面向对象设计中,数据成员一般设计为私有数据成员,然后使用成员函数对其赋值或取值。在使用class定义类时,若没有写访问控制符,则默认为private;使用struct定义类时,默认为public。

面向对象程序设计:访问控制符解析

在类的定义中,protected和public都是访问控制符,它们可以限制数据成员和成员函数的使用。在类定义中设置访问保护屏障,其主要目的是满足面向对象程序设计的需要,对于类自己的数据和自己使用的操作应由类自己负责维护使用,保护数据不被肆意使用修改,对外只提供有限的接口操作。这样使类的独立性更好,便于维护和使用。类的访问控制符有public、protected和private。类的访问控制符的规则如表2-1所示。

表2-1 访问控制符

在面向对象设计中,数据成员一般设计为私有数据成员,然后使用成员函数对其赋值或取值。这样设计目的是把数据封装在类的内部,实现数据管理的局部化,外部对数据的操作是通过类对外提供的公有的成员函数实现。数据的设计对于外部来说是不可见的,保证了数据的安全,在修改内部数据形式或类型时,只需同时修改操作它们的成员函数的内部算法,而对外公开的成员函数接口不变,就不会影响使用该类的外部程序。在面向对象设计上,实现对象的属性状态信息由对象自己的操作维护,而不受外界控制,可以保证对象的安全。

在面向对象设计时,一般把大量的成员函数设计为public的,是类对外提供的接口,便于对类的使用;而少量的成员函数设置为private或protected,是对内部数据成员的加工处理,使其操作范围限制在类内。

在使用class定义类时,若没有写访问控制符,则默认为private;使用struct定义类时,默认为public。

【例2.5】设计一个表格类,该类对象可以设置行和列,并能打印简单的表格。

程序运行的结果是如图2-1所示。(www.daowen.com)

图2-1 例2.5运行结果图

在例2.5中,main函数中,若直接使用t.col=8,则在程序编译时,系统会提示错误,错误信息为“error C2248: 'col' :cannot access private member declared in class'Table'”,col是私有成员,不能通过对象访问。同理,使用t.print Line(8),也是不允许的。

在C++中定义类,用关键字class(或struct)声明类,类名称的第一个字符一般为大写,在声明数据成员和成员函数时没有特定先后顺序,访问控制符的设计也没有特定顺序,但一般类定义时把public声明的成员放在前面,然后定义protected声明的成员,把private声明的成员放在最后。这样安排是对于使用类的用户来说,可以直接看到公有的成员,便于使用。

【例2.6】自定义日期类。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈