请问:为什么会报错(error C2512: 'gsjl' : no appropriate default constructor available),该怎

时间:2020-12-27 18:57:38
#include <iostream>

using namespace std;

class gsjl{
int m;
public :
gsjl(int a):m(a){cout<<"公司经理工资:"<<m;}
};

class jzry:public gsjl{
int m;
public:
jzry(int a):m(a){cout<<"兼职人员工资:"<<m;}
};

void main()
{
}
请问:为什么会报错(error C2512: 'gsjl' : no appropriate default constructor available),该怎么写,麻烦好心人指点一下!谢谢!

5 个解决方案

#1


为类gsjl写一个默认构造函数。

#2


因为你的子类调用了父类的默认构造函数,而你的父类并没有实现默认构造函数。所以自己实现一个即可。

#3


jzry(int a):gsjl(a),m(a)

#4


你这个继承体系有问题~ 难道兼职人员也是经理?
比较好的做法是定义一个雇员类, 然后分别派生出经理和兼职人员

#5


加一个构造函数就Ok了,gsjl(){}

#1


为类gsjl写一个默认构造函数。

#2


因为你的子类调用了父类的默认构造函数,而你的父类并没有实现默认构造函数。所以自己实现一个即可。

#3


jzry(int a):gsjl(a),m(a)

#4


你这个继承体系有问题~ 难道兼职人员也是经理?
比较好的做法是定义一个雇员类, 然后分别派生出经理和兼职人员

#5


加一个构造函数就Ok了,gsjl(){}