在vc++6.0中如何将 继承类 的定义和声明分别写在.h和.cpp文件中

******************person.h*****************************************************classp... ******************person.h*****************************************************
class person
{
public:
//公有函数
person(char nm[],int ag,char sx[]); //构造函数

//由已知参数 nm 姓名 ag 年龄 sx 性别 构造对象
void Show()const;
protected:
//数据成员
char name[18];
int age;
char sex[3];

// virtual ~person();
};
******************person.cpp*******************************************************
person::person(char nm[],int ag,char sx[])
{
strcpy(name,nm);
age=ag;
strcpy(sex,sx);
}
void person::Show()const
{
cout<<"姓名:"<<name<<endl;
cout<<"年龄:"<<age<<endl;
cout<<"性别:"<<sex<<endl;

}

*******************teacher.cpp*******************************************************
class teacher : virtual public person
{
protected:
//数据成员:
char title[18];
public:
//公有函数:
teacher(char nm[],int ag, char sx[],char tl[]):person(nm,ag,sx)//构造函数
{
strcpy(title,tl);

}
void Show()const
{
person::Show();
cout<<"职称:"<<title<<endl;
cout<<endl;
}
/* virtual ~teacher();*/

};

***********cadre.h**********************************************************
class cadre : virtual public person
{
protected:
char post[18];
public:
cadre(char nm[],int ag,char sx[],char pt[]):person(nm,ag,sx)
{
strcpy(post,pt);
}//构造函数

void Show() const
{
person::Show();
cout<<"职务:"<<post<<endl;
cout<<endl;
}/* */
/*virtual ~cadre()*/

};

***********teachercadre.h*********************************************************
class teachercadre :
public teacher,
public cadre
{
protected:
//数据成员
double wages; //工资

public:
teachercadre(char nm[],int ag,char sx[],char tl[],char pt[],double wg)
:person(nm,ag,sx),teacher(nm,ag,sx,tl),cadre(nm,ag,sx,pt)
{wages=wg;}

void Show()const
{
person::Show();

cout<<"职称:"<<title<<endl;
cout<<"职务:"<<post<<endl;
cout<<"工资:"<<wages<<"元"<<endl;
cout<<endl;
}

virtual ~teachercadre();
};

*************如何将cadre.h teacher.h teachercadre.h 中的 函数的定义和实现像person那样 。h 和。cpp 分开写 我一分开就报错 。。
回答的好追加分数啊 。。。先谢谢各位了
展开
 我来答
再改名我发火
2012-10-17 · TA获得超过189个赞
知道答主
回答量:128
采纳率:0%
帮助的人:131万
展开全部
拿一个出来说,比如teacher是继承了person,那么在teacher.h中就可以先#include一个person.h(因为teacher的定义要用到person),然后在teacher.cpp中#include一个teacher.h(这个貌似不用怎么解释。),差不多这样应该就行了。
追问
能把其中 的构造函数部分具体写下吗。。??先谢了
追答
你的构造函数貌似写的貌似没什么问题啊。。
yuhaiming_0906
2012-10-17 · TA获得超过199个赞
知道小有建树答主
回答量:285
采纳率:0%
帮助的人:152万
展开全部
在你代码中我没看到在。cpp文件中引用对应的头文件的代码呀。比如在在cpp文件中#include “teachercadre.h”
更多追问追答
追问
这些我知道 、、就是我把构造函数部分 写到。cpp中后 老报错 。。。能帮我把构造函数部分写一下吗。。??
追答
对了你的类继承时为啥要加个virtual呀??比如class cadre : virtual public person
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式