已采纳回答 / qq_慕先生620106
protected和private对于外部实例来说一样的,即 Person person;这里person"."不出protected 和 private修饰的成员变量。
2019-08-28
已采纳回答 / AlexPan0610
编译器给出的提示是ChildLabourer类没有m_strName和m_iAge成员变量。推测是子类的初始化列表先于父类的构造函数执行,否则无法将参数传递给父类。因此在执行ChildLabourer的初始化列表时,父类(Worker, Children)的构造方法尚未执行,当然成员变量(m_strName, m_iAge)也就不存在,因此不能在子类的初始化列表中初始化父类的成员变量。
2019-08-05
已采纳回答 / yiyoo
用virtual虚析构函数是为了防止内存泄漏。具体地说,如果派生类中申请了内存空间,并在其析构函数中对这些内存空间进行释放。假设基类中采用的是非虚析构函数,当删除基类指针指向的派生类对象时就不会触发动态绑定,因而只会调用基类的析构函数,而不会调用派生类的析构函数。那么在这种情况下,派生类中申请的空间就得不到释放从而产生内存泄漏。所以,为了防止这种情况的发生,C++中基类的析构函数应采用virtual虚析构函数。
2018-11-04
已采纳回答 / Aralkyle_La_pluie
老师用的是Microsoft Visual Studio 2010 ,现在你可以自己搭建Microsoft Visual Studio 2017的IDE,网上可百度出注册码
2018-07-14
已采纳回答 / 小图兔
个人总结:virtual当前出现的三种地方:虚析构函数:当父类指针指向子类对象时,释放内存时,若不定义virtual,则仅释放父类内存。虚继承:防止多继承和多重继承时,一个父类被继承多次,造成内存空间的浪费。虚函数:当父类指针指向子类对象时,父类指针可以指向子类方法。
2018-06-28
已采纳回答 / 慕无忌5762020
或者 你也可以在 派生类中 再写一个public 下的函数 去调用 protect中的 函数 这样做 几乎没有任何意义 本来就是为了调用函数 现在要用另外一个函数 去调用这个函数
2018-06-26