因为你的意图是,声明和定义在一起了。所以应该将;号改为{,并后续添加定义代码。
请把:Person(name,gender,age)这个去掉
致命错误:
子类不可以继承父类构造函数;(但是子类可以显式调用父类构造函数;)
============================================
你的用意是 .h声明 和 .cpp定义 分开,所以应该这么写:
Teacher.h
class Teacher:public Person
{
private:
string m_strTitle;
string m_strResearch;
int m_nSalary;
public:
Teacher(string name,char gender,int age,string title,string research,int salary);//声明
//声明时只要交代清楚函数名、参数列表、返回类型这几个问题即可。不需要交代函数的具体实现(是调用了父类构造还是用了什么鬼方法,统统不需要)
void Display();
};
Teacher.cpp
#include"person.h"
Teacher(string name,char gender,int age,string title,string research,int salary)
: Person(name,gender,age){//定义
//在定义中显式调用父类构造函数
......
//或其它什么鬼函数
.....
}