在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 分开写 我一分开就报错 。。
回答的好追加分数啊 。。。先谢谢各位了 展开
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 分开写 我一分开就报错 。。
回答的好追加分数啊 。。。先谢谢各位了 展开
2个回答
展开全部
在你代码中我没看到在。cpp文件中引用对应的头文件的代码呀。比如在在cpp文件中#include “teachercadre.h”
更多追问追答
追问
这些我知道 、、就是我把构造函数部分 写到。cpp中后 老报错 。。。能帮我把构造函数部分写一下吗。。??
追答
对了你的类继承时为啥要加个virtual呀??比如class cadre : virtual public person
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询