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

井白人 2009-04-19 09:46:02
为什么隐藏那么愚笨,C++
还要用它呢?在常常让我在
写函数进行覆盖时,
出的错搞得自己迷迷糊糊。
请给个好的理由吧。。
为什么还要保留这样愚蠢
的机制。??
...全文
273 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)

64,639

社区成员

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

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