最赞回答 / qq_慕前端0595576
这么说吧,父类中的protected:m_strName被子类继承了,但由于子类也定义了一个m_strName,这就使得父类的m_strName被隐藏,当然,父类的m_strName和子类的m_strName都在子类对象所在的空间里,要想访问父类的m_strName需要用到Person::m_strName。 父类是接口,继承来的东西也会复制到子类中,无论是soldier.m_strName还是soldier.Person::m_strName,操作的数据都是soldier对象所在空间里的...
2018-02-11
最赞回答 / 慕斯6136978
并不是这样的,战士类中private中继承人类的数据成员,比如name,在战士中变成了private下的,所以战士类的派生类步兵类的成员函数怎么能访问到其基类的name呢,就像你父亲的私房钱是他私有的,你就不能去访问了
2017-12-16
最赞回答 / 慕的地0332996
宏定义是解决重定义的问题,重定义就是如果在多个头文件中引用了同一个或多个头文件,编译器在编译的时候会多次编译头文件,加上宏定义使用#ifdef 来判断一下就可以避免这种情况
2017-11-14
最赞回答 / qq_David尧尧_0
首先 子类中如果有跟父类中同名的成员函数,不会出现重载,会继承该成员函数,只是在调用时有区别:子类对象.同名函数 调用的是子类中自己定义的同名成员函数子类对象.父类::同名函数 调用的是继承的同名成员函数
2017-10-17