首页 > 编程 > C++ > 正文

C++教程:C++的共有类和私有类

2020-05-23 14:26:07
字体:
来源:转载
供稿:网友
在上一章,我们提到了类的封装性。那么我们是如何保证类内部的数据和操作不被外部访问或执行呢?这时候,我们就要说说什么是公有(Public)和私有(Private)了。

所谓公有,就是外部可以访问的数据或执行的操作。比如一个人的身高(数据)是可以较直接地获得的,一个人吃东西(操作)是可以受外部控制的。私有就是外部不能直接访问的数据或执行的操作。比如一个人的心跳次数(数据)和消化过程(操作),虽然他们都是客观存在,但我们却不能直接地获取心跳数据或控制消化过程。

如果一个类的所有数据和操作都是公有的,那么它将完全暴露在外,同结构一样没有安全性。如果一个类的所有数据和操作都是私有的,那么它将完全与外界隔绝,这样的类也没有存在的意义。

下面我们来看一下如何定义公有和私有的成员数据:
class Node//定义一个链表结点类
{
   public:
   int idata;//数据能够被外部访问
   char cdata;//数据能够被外部访问
   private:
   Node *prior;//前驱结点的存储位置保密
   Node *next;//后继结点的存储位置保密
};
按照上面的写法,如果我们有一个结点对象lnode,那么lnode.idata和lnode.cdata都是可以被外界直接访问的,而lnode.prior和lnode.next则不能被外界直接访问。

需要注意的是,如果我们在定义或声明时不说明该成员数据(或成员函数)是公有的还是私有的,则默认为私有的。所以从习惯上我们总是把定义的成员数据和成员函数分为公有和私有两类,先定义公有再定义私有,方便阅读代码时能够区分。虽然在定义时可以有多个public或private保留字,但是我们不推荐那样的写法。 

另外,以后我们还会遇到一个名为protected的保留,目前它和private的效果是一样的,即成员数据或成员函数不能被外界直接访问或调用。在以后的章节我们会了解到private和protected的区别。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表