已采纳回答 / gdjy098
在这里,是不是B是A的子类啊?如果B是A的子类,前提:class B:public AB b;A a = b;//用子类B的对象初始化父类A的对象A a1;a1 = b;//用子类B的对象赋值给父类A的对象A*p = &b;//用父类A的指针指向子类B的对象bA&a2 = b;//用子类B的对象初始化父类A的引用 子类创建时候是先调用基类的构造函数,然后再调用子类的构造函数。你用子类的构造函数是完全可以实例化基类的。给你个网址,它讲的比较清楚https://zhidao.baid...
2017-02-03
最赞回答 / 慕沐5120513
C++可以做游戏开发,嵌入式开发,服务器开发,桌面软件开发等;想入门的话可以先考虑看看慕客上的C++视频,看完后对C++的理解会更深刻,然后再往更深层里研究。
2017-01-12
最赞回答 / 慕粉4092444
没有。。。。。Person::soldier.attack()就变成Person这个类里面的soldier.attack()函数了,逻辑上就不对了!
2017-01-12
已采纳回答 / qq_静静流_0
soldier.attack()士兵调用自己的方法,attack()是士兵的方法自己私有的懂吗?可以实例化对象直接调用!我没知道士兵继承了person,因为是公有继承所以士兵也有了人类的吃饭的方法!你可能以后为什么?以为士兵公有继承了人,那么人的方法和属性都会继承来!因为士兵也是一个人,明白吗?所以他也可以eat(),因为士兵并没有重写继承来的eat(),所以可以直接调用person的eat()方法!知道为什么吗?因为士兵继承person后他就有了eat()方法,只是没有写出来!这也是为什么有继承,因为可...
2016-12-15
最赞回答 / 大妮妮1051134
因为migrantworker可以从farmer 和 worker继承,而farmer和worker都是从person继承的,这样migrantworker就含有两个person中的数据,这是不被允许的,所以采用虚继承避免冗余数据。 migrantworker只是包含farmer一次,不存在冗余,所以不需要虚继承
2016-12-07
已采纳回答 / 岸芷汀兰0u7
protected的特性是在类中不能直接访问,但是可以间接访问到。比如:在public中的一个函数sum中调用了protected中的变量m_ia,m_ib。即内部能够访问,但不能直接访问。公有继承到子类中依然是protected下,同样是不能直接访问m_ia,m_ib,但是可以间接访问。
2016-11-15