为了账号安全,请及时绑定邮箱和手机立即绑定

这种情况如何理解隐藏呢,子类中的变量_a会隐藏掉父类中的_a吗?

#include <iostream>

using namespace std;

class A
{
public:
   int _a;
   A()
   {
       _a = 1;
   }
   int print()
   {
       return _a;
   }

};

class B:public A
{
public:
  int _a;
  B()
  {
      _a =2;
  }

};

int main()
{
   B b;
   cout << b.print()+b._a <<endl;
   system("pause");
   return 0;
}

正在回答

3 回答

会的。

b._a 取的是 b 中的那个 _a

而 B 继承了 A 的 print 函数,这个函数定义在 A 中,函数取的是 A 中的_a,所以 b.print() 还是会输出 1

1 回复 有任何疑惑可以回复我~
#1

求知书生 提问者

非常感谢!
2017-05-02 回复 有任何疑惑可以回复我~
#2

onemoo 回复 求知书生 提问者

天呐,2015年的问题...
2017-05-02 回复 有任何疑惑可以回复我~
#3

求知书生 提问者 回复 onemoo

嘻嘻,我这前学习时问的,后来就一直在做c了,现在看到您回答了,就采纳了。哈哈
2017-05-03 回复 有任何疑惑可以回复我~

会,但是能调用到, 3

0 回复 有任何疑惑可以回复我~

会。。。。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之继承篇
  • 参与学习       75188    人
  • 解答问题       251    个

继承,C++面向对象三大特征之一,通过编码实践方式讲解到操作层面

进入课程

这种情况如何理解隐藏呢,子类中的变量_a会隐藏掉父类中的_a吗?

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号