C++ 类的各种公开、私有、保护成员定义的实际意义?

 我来答
刺任芹O
2022-11-16 · TA获得超过6.3万个赞
知道顶级答主
回答量:38.7万
采纳率:99%
帮助的人:1亿
展开全部
这些东西都是为了避免犯错,而不是避免蓄意的阴谋。\x0d\x0a\x0d\x0a类的各种公开、私有、保护是用来区分实现与接口部分(比较低层次的)。类的公有成员定义了类的功能(接口),这些接口定义了这个类能做什么,不能做什么,这个类因为这个接口而存在。而类的私有成员和保护成员定义了类的实现部分,这些实现部分可能因为性能、可靠性而经常改动。 通过在编程语言中区分出接口和实现,可以让程序员以最小的代价去修改代码,可以让用户在阅读我们的代码时知道应该关注那些东西而不应该关注那些东西,同时也让编译器能检查出用户代码非法使用类实现代码的情况。\x0d\x0a\x0d\x0a这是为了避免犯错以及时代码清晰而已,你所的那个防人,现在的技术做不到。\x0d\x0a\x0d\x0aC++的继承、静态多态(模板)和动态多态(virtual函数)则把接口与分离的原则发挥到了极致。\x0d\x0a\x0d\x0a公开、私有、保护成员在编译前和编译后有什么区别?\x0d\x0a没什么区别,public、private、protected限制的是名字使用而已,也就是说你也可以在代码中通过指针访问私有保护成员,但是如我前面说的:这些东西都是为了避免犯错,而不是避免蓄意的阴谋。\x0d\x0a\x0d\x0a你说的那个隐藏细节的那个问题,有一些技术可以做到的,比如说使用句柄类技术,可以在类的声明中只保留一个成员指针,而所有的细节都隐藏在这个指针的后面。\x0d\x0a\x0d\x0a定义一个私有数据,然后用一个公共的函数return到底有什么实际价值?\x0d\x0a如果将来某一天你决定将这个变量换成其他的,那你就只需要修改那个return这个变量的函数就可以了。还有这种做法有助于排错的。\x0d\x0a\x0d\x0a找一些国外的书看吧,现在有些书说得都很浅的,只是讲语法。
Storm代理
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I... 点击进入详情页
本回答由Storm代理提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式