• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

为什么c++中返回成员变量的指针,会破坏了封装?

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

上述代码中,get()函数返回的是类成员变量的name的地址,这是很危险的,name是私有的,意味这不想被客户访问,但是如果返回name的地址,那么外部函数就可以修改name,这就破坏了封装性。

为什么会出现上述破坏封装的情况呢?

 

我们知道在面向对象语言里面有一个概念,叫做访问说明符(access specifier),其实就是public private protected三个访问说明符。虽然说访问说明符是结构的一部分,他们不影响从这个结构创建的对象,但是访问说明符在程序开始运行之前,所有的访问说明信息都消失了,访问说明信息通常是在编译期间消失的。在程序运行期间,对象变成了一个存储区域,因此如果真有人想要破坏这些规则并且直接访问内存中的数据,就如在c中所做的那样,那么c++并不能防止他做这种不明智的事。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
c++学习之多态(虚函数和纯虚函数)发布时间:2022-07-13
下一篇:
c++Socket客户端和服务端示例版本三(多线程版本)发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap