C++子类有构造函数为何还继承父类的构造函数我写的程序#include#include"laoyouwei.h"using namespace std;void wo(you &ou){ou.show();}void main(){you a;youwei b;laoyouwei c;c.show();wo(a);cout
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/08 23:48:22
C++子类有构造函数为何还继承父类的构造函数我写的程序#include#include"laoyouwei.h"using namespace std;void wo(you &ou){ou.show();}void main(){you a;youwei b;laoyouwei c;c.show();wo(a);cout
C++子类有构造函数为何还继承父类的构造函数
我写的程序
#include
#include"laoyouwei.h"
using namespace std;
void wo(you &ou)
{
ou.show();
}
void main()
{
you a;
youwei b;
laoyouwei c;
c.show();
wo(a);
cout
C++子类有构造函数为何还继承父类的构造函数我写的程序#include#include"laoyouwei.h"using namespace std;void wo(you &ou){ou.show();}void main(){you a;youwei b;laoyouwei c;c.show();wo(a);cout
所谓继承,就是指子类“是一种”基类.所以子类一定会具备基类的所有特征.
子类无法访问基类的私有成员,所以必须调用父类的构造函数来初始化父类的成员.
对於子类来说,它不是“不会调用父类的构造函数”,而是“隠藏”了它.必要时候,你还是可以用特殊方法显式调用的.
为了达到你的目的,你有两个选择:
一,为基类提供一个怠工(dummy)构造函数,不作为.
二,声明为虚函数.
BTW,构造函数唯一的目的在於初始化对象.获取资源而不初始化,有悖RAII原则.所以基本上,第一种情况不大可能出现.