c++中信息隐藏的实现

本文是《C++编程思想》阅读笔记的第三部分,主要讨论C++中通过访问控制实现信息隐藏,包括public、private和protected关键字的作用,以及友元函数在封装中的应用。信息隐藏有助于创建更安全的类,确保用户只能通过公共接口访问,从而可以在不影响用户代码的情况下改变类的实现细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

《c++编程思想》阅读笔记(3)

虽然将数据和函数捆绑在一起很有好处,并使得库容易使用,因为这可以通过隐藏名字防止名字冲突,但是,还有大量的工作可以使c++程序设计更加安全。


第3章: 隐藏实现
1)需要控制对结构成员的存取有两个理由:一是让用户避开一些他们不需要使用的工具,这些工具对数据类型内部的处理来说是必须的,但对于用户特定问题的接口来说却不是必须的。这实际上是维用户提供了方便,因为他们可以很容易地知道,对他们来说哪些是重要的,哪些是可以忽略的。二是设计者可以改变struct的内部实现,而不必担心对用户程序员产生影响。


2)c++语言引进了三个新的关键字,用于在struct中设置边界:public、private、protected。这些存取指定符只能在class或struct声明中使用,他们可以改变在它们之后的所有声明的边界。使用存取指定符,后面必须跟上一个冒号。

3)public意味着在其后声明的所有成员对所有的人都可以存取。private则意味着,除了该类型的创建者和类的内部成员函数以外,任何人都不能存取这些成员。private在设计者与用户之间筑起了一道墙。protected与private基本相似,只有一点不同:继承的结构可以访问protected成员但不能访问private成员,现在先把这两种指定符看成一样来看待,直到介绍了继承后再区分这两个。


4)如果程序员想允许不属于当前结构的一个成员函数存取结构中的数据,他可以在struct的内部声明这个函数为友元。一个友元必须在一个struct内声明。因为编译器必须能够读取这个结构的声明以理解这个数据类型的大小、行为等方面的规则,有一个规则在任何关系中都很重要,那就是“谁可以访问我的私有实现部分”
程序员可以把一个全局函数声明为友元类,也可以把另一个struct中的成员函数甚至整个struct都声明为友元类。举个例子


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值