已采纳回答 / weibo_以形为心役_0
头文件是否有#include<iostream>是否有命名空间using namespace std;m_strName属于哪个对象需要指明,例如cout<<soldier.m_strName<<endl;
2017-03-29
已采纳回答 / _Devil___4213279
当C++由于头文件重复包含了所定义的变量或者常量,比如视频中两个文件中都有#include“person.h”就重复包含了person类的数据。
2017-03-18
已采纳回答 / 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
已采纳回答 / qq_静静流_0
soldier.attack()士兵调用自己的方法,attack()是士兵的方法自己私有的懂吗?可以实例化对象直接调用!我没知道士兵继承了person,因为是公有继承所以士兵也有了人类的吃饭的方法!你可能以后为什么?以为士兵公有继承了人,那么人的方法和属性都会继承来!因为士兵也是一个人,明白吗?所以他也可以eat(),因为士兵并没有重写继承来的eat(),所以可以直接调用person的eat()方法!知道为什么吗?因为士兵继承person后他就有了eat()方法,只是没有写出来!这也是为什么有继承,因为可...
2016-12-15
已采纳回答 / 岸芷汀兰0u7
protected的特性是在类中不能直接访问,但是可以间接访问到。比如:在public中的一个函数sum中调用了protected中的变量m_ia,m_ib。即内部能够访问,但不能直接访问。公有继承到子类中依然是protected下,同样是不能直接访问m_ia,m_ib,但是可以间接访问。
2016-11-15
已采纳回答 / 慕粉shuangyu
http://blog.csdn.net/starlee/article/details/619827 我在一个博客中看到的答案,觉得挺有道理的,你可以看看
2016-10-19
已采纳回答 / qq_一r过_03334883
这个例子是为了给你演示多继承,实例化子类对象来给父类成员赋值,因为famer类只有m_strName而没有m_strCode,woker类和它相反,而MigrantWorker类则具有两个成员,如果只是给MigrantWorker类自己的成员赋值的话,是可以采用你说的普通方法。给父类成员赋值,也可以使用 MigrantWorker mk; mk.Famer::m_strName="XXXX"的方式,但是显然初始化列表更加的省事。
2016-10-09
已采纳回答 / Jason_Jay
1.实例化子类的时候会先构造父类对象,而释放的时候则是先释放子类,然后再释放父类。2.编程中凡是有实例化的对象最后都要释放掉,不然可能会导致内存泄漏。
2016-10-09
已采纳回答 / 忧伤的小鞋匠
哪里的ChildrenLabourer?如果是在堆中实例化对象的话,应该是ChildrenLabourer *p = new ChildrenLabourer;(省略了参数列表),如果是在栈中实例化的话一般是ChildrenLabourer childrenLabourer。
2016-10-05
已采纳回答 / 慕数据8895736
最开始的时候执行了Person和Soldier的构造函数,如果不加虚析构函数的话 你会看到就只释放了Person的析构函数,这样就少释放了Soldier的析构函数,加了的话就会有~Soldier和~Person,一样各执行了一次,没有重复释放ka ,不知这样理解得对不对。
2016-09-27