隐藏那么愚笨,为什么C++还要用它呢?

井白人 2009-04-19 09:46:02
为什么隐藏那么愚笨,C++
还要用它呢?在常常让我在
写函数进行覆盖时,
出的错搞得自己迷迷糊糊。
请给个好的理由吧。。
为什么还要保留这样愚蠢
的机制。??
...全文
296 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
firsthym 2009-04-20
  • 打赏
  • 举报
回复
你对隐藏机制在具体应用时老出错,很有可能是你对自己设计的类还有类之间的关系都不是很清楚。
tsoslience 2009-04-20
  • 打赏
  • 举报
回复
学习
hiboys 2009-04-20
  • 打赏
  • 举报
回复
直观点,隐藏是应现实的要求设计的。
例如对于你的银行卡中的信息余额,密码等,
对你自己你很清楚上面有存款余额。
对银行(你声明其为友元的类)来说,它也可以知道存款余额
对你的孩子(你的子类),他也知道存款余额
对外人(不相关类),你想让我们知道吗?
ForestDB 2009-04-20
  • 打赏
  • 举报
回复
不是自己迷迷糊糊的么?
tonforce 2009-04-20
  • 打赏
  • 举报
回复
呵呵
有点意思。
once_and_again 2009-04-20
  • 打赏
  • 举报
回复
抽象,就是有选择性的去忽略.
门后面的猫 2009-04-20
  • 打赏
  • 举报
回复
至少隐藏可以减少代码量,可以让程序更加简易并且不缺少信息!
iloveppmm 2009-04-20
  • 打赏
  • 举报
回复
什么是隐藏?? 学了好几个月c#了,没注意哪讲隐藏了。
fellatioyzx 2009-04-20
  • 打赏
  • 举报
回复
你理解不了不是它愚蠢吧,是你愚蠢哎
houzui 2009-04-20
  • 打赏
  • 举报
回复
16楼的朋友理解错了吧,lz说的隐藏不是类里面的private属性的成员变量或者函数,他说的意思大概是在类与类的继承中的隐藏的概念,像7楼写的程序那样,应该是说的那意思
井白人 2009-04-19
  • 打赏
  • 举报
回复
谢谢
对于《高质量C++》
我去找找下来研究一下。。。
jackyjkchen 2009-04-19
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 hejinjing_tom_com 的回复:]
隐藏,让我们少关心一些实现,多关心一下接口。
隐藏,我的理解通常是指类的私有属性和私有方法。
至于6楼的提法,我试了一下,都是允许的。这可以从类型多态性来理解,A类的i, B类的i, 局部变量i
不会混淆。
[/Quote]

我晕,6楼的当然能跑,但是如果没有隐藏应不行了
hjjdebug 2009-04-19
  • 打赏
  • 举报
回复
隐藏,让我们少关心一些实现,多关心一下接口。
隐藏,我的理解通常是指类的私有属性和私有方法。
至于6楼的提法,我试了一下,都是允许的。这可以从类型多态性来理解,A类的i, B类的i, 局部变量i
不会混淆。
井白人 2009-04-19
  • 打赏
  • 举报
回复
大概你不知道我问的用意了。也许我问得不够清楚。。
当然我说它愚笨是因为我不能很好的运用它,不能
很好的理解它。而造成对它有这样的感觉,并非是
说它存在是一种错误而,那不是我的本意。。
还有况且你也没有回答我问的问题,而是把矛头
指向了问题以外的东西,这样做也不怎么好吧。。
井白人 2009-04-19
  • 打赏
  • 举报
回复
大概你不知道我问的用意了。也许我问得不够清楚。。
当然我说它愚笨是因为我不能很好的运用它,不能
很好的理解它。而造成对它有这样的感觉,并非是
说它存在是一种错误而,那不是我的本意。。
井白人 2009-04-19
  • 打赏
  • 举报
回复
大概你不知道我问的用意了。也许我问得不够清楚。。
当然我说它愚笨是因为我不能很好的运用它,不能
很好的理解它。而造成对它有这样的感觉,并非是
说它存在是一种错误而,那不是我的本意。。
arong1234 2009-04-19
  • 打赏
  • 举报
回复
不要因为自己不明白就指责人家错,它存在,总有点原因,不会因为你觉得它蠢它就真蠢了
把自己的无知推给别人,是自己更无知的最好方法
Jinhao 2009-04-19
  • 打赏
  • 举报
回复
隐藏是很简单的规则.如果没有.

class A
{
public:
int i;
};

class B: public A
{
public:
int i; //错误
};

B b;

int main()
{
int b; //错误
}

jackyjkchen 2009-04-19
  • 打赏
  • 举报
回复
C#作为一种全新的C系语言,取消了多继承都没取消隐藏,可见隐藏还是有用的
lq651659889 2009-04-19
  • 打赏
  • 举报
回复
好牛的问题啊。
加载更多回复(3)
代码转载自:https://pan.quark.cn/s/eefcd5647328 在信息技术行业中,BIOS(基本输入输出系统)扮演着计算机硬件与操作系统之间的重要桥梁角色,其主要职责包括对硬件进行初始化和检测,以及负责启动操作系统的加载流程。联想Y430P作为一款广受用户青睐的便携式计算设备,而“联想Y430P-刷BIOS V3.66”特指将这款设备的BIOS版本升级至V3.66的具体操作。此类操作有时是不可或缺的,因为BIOS的升级能够修正已知的系统缺陷,优化硬件的互操作性,或者提升整体运行效能。 我们必须明确为何需要进行BIOS的刷新操作。联想Y430P设备可能存在某些功能上的约束,比如网卡白名单机制,这种机制会限制用户更换非原装硬件设备,例如无线网络适配器。网卡白名单是BIOS内嵌的一种安全防护措施,它仅允许经过认证的特定型号网卡在系统中正常工作,以此来保障系统的兼容性与稳定性。然而,这种安全特性同时也对用户自主进行硬件升级造成了限制。通过安装新版本的BIOS,我们可以移除这类限制条件,使系统能够识别并兼容更多种类的网卡设备,具体而言,在更新至BIOS V3.66版本后,用户可以自由更换网卡和显卡,而不会触发设备未获授权的警示信息。 在执行BIOS刷新操作之前,必须保持高度的审慎态度,因为不恰当的BIOS更新可能导致设备无法正常启动。以下是进行BIOS刷新的标准流程: 1. **保存当前BIOS状态**:在执行更新之前,强烈建议对现有的BIOS进行备份,以便在更新后出现问题时能够迅速恢复至初始状态。 2. **获取精确版本的BIOS更新包**:需从官方渠道或可信赖的第三方资源中下载与联想Y430P设备相匹配的BIOS V3.66升级文件。 3. *...

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧