C++改错 问题

来源:百度知道 编辑:UC知道 时间:2024/09/21 20:29:38
class Graduate :public Teacher, public Student
{private:
char subject[21];
Teacher adviser;
public:
Graduate(char *n="people",long num=1,int y=1,int m=1,int d=1,long i=1,
char *c="??",char*p="??",char*de="??",Teacher a):
People(n,num,y,m,d,i),Student(n,num,y,m,d,i,c),Teacher(n,num,y,m,d,i,p,de),
adviser(a){}
friend istream& operator >> (istream&a,Graduate&v)
运行之后
出现这个错误:error C2548: 'Graduate::Graduate' : missing default parameter for parameter 10
高手解决哈子

C++规定,有默认值的参数一律写在最后(就是说从第一个有默认值的参数开始后面就不能再有无默认值的参数了)
你的构造函数的最后一个参数Teacher a没有默认值,当然会报错了。
把它拿到最前面来。

C++规定,有默认值的参数一律写在最后(就是说从第一个有默认值的参数开始后面就不能再有无默认值的参数了)