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

最后打印James没懂。

这个地方不是子类继承的父类吗 那么子类通过Person::m_strName = "James"改变之后 应该改的只是自己继承过来的m_strName啊  为什么把父类的也改变了

正在回答

3 回答

这么说吧,父类中的protected:m_strName被子类继承了,但由于子类也定义了一个m_strName,这就使得父类的m_strName被隐藏,当然,父类的m_strName和子类的m_strName都在子类对象所在的空间里,要想访问父类的m_strName需要用到Person::m_strName。         父类是接口,继承来的东西也会复制到子类中,无论是soldier.m_strName还是soldier.Person::m_strName,操作的数据都是soldier对象所在空间里的!

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

这节内容你没有听懂,你可以理解为父类和子类是两个不同的空间,soldier是用子类定义的,在soldier下先使用的空间是子类Soldier,要用到父类需要Person::m_strName = "James"

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

Person::m_strName = "James"修改的是父类中的变量,不是子类中的m_strName

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

举报

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

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

进入课程

最后打印James没懂。

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信