求解一道c++编程题(有关“类的单一继承”)
用“单一继承”的方式来实现“学生”和“毕业生”两个类设计相关的数据成员和函数,编程测试继承情况注意:作为“学生”有“学号”,“性别”等而“毕业生”除此还有“毕业时间”“所...
用“单一继承”的方式来 实现“学生”和“毕业生”两个类
设计相关的 数据成员 和 函数,编程测试继承情况
注意:
作为“学生”有“学号”,“性别”等 而“毕业生”除此还有“毕业时间” “所获得学位”等
在 mian()函数中进行测试,可 设计多种继承方式来测试继承的 属性
能不能写简单点 的
1楼这么夸张
。。。。 展开
设计相关的 数据成员 和 函数,编程测试继承情况
注意:
作为“学生”有“学号”,“性别”等 而“毕业生”除此还有“毕业时间” “所获得学位”等
在 mian()函数中进行测试,可 设计多种继承方式来测试继承的 属性
能不能写简单点 的
1楼这么夸张
。。。。 展开
5个回答
展开全部
#include <iostream.h>
#include <string.h>
class student //学生类
{
protected:
char szId[10];
char sex[10];
public:
void SetId(const char *aId)
{
strcpy(szId,aId);
}
char *GetId(void)
{
return szId;
}
void SetSex(char *asex)
{
strcpy( sex, asex);
}
void GetSex()
{
cout<<sex;
}
virtual void OutPut(void)
{
cout<<"这是一个学生:"<<endl<<"ID是 "<<szId<<endl<<"性别是 "<<sex<<endl;
} //虚函数
};
class grad:public student //共有继承
{
protected:
char szGradTime[30];
char szDegree[30];
public:
void SetGradTime(const char *aGradTime)
{
strcpy(szGradTime,aGradTime);
}
char *GetGradTime(void)
{
return szGradTime;
}
void SetDegree(const char *aDegree)
{
strcpy(szDegree,aDegree);
szDegree[29]=0x0;
}
char *GetDegree(void)
{
return szDegree;
}
virtual void OutPut(void)
{
cout<<"这是一个毕业生: "<<endl<<"ID是 "<<szId<<endl<<"性别是 "<<sex<<endl<<"毕业时间是 "<<szGradTime<<endl<<"学位是 "<<szDegree<<endl;
} //虚函数
};
void main() //主函数
{
student aStudent;
grad aGrad;
aStudent.SetId("一号");
aStudent.SetSex("male");
aGrad.SetId("二号");
aGrad.SetSex("female");
aGrad.SetGradTime("2009-5-5");
aGrad.SetDegree("硕士");
aStudent.OutPut();
cout<<"*****************我是华丽的分割线***************"<<endl;
aGrad.OutPut();
cout<<"*****************我是华丽的分割线***************"<<endl;
}
#include <string.h>
class student //学生类
{
protected:
char szId[10];
char sex[10];
public:
void SetId(const char *aId)
{
strcpy(szId,aId);
}
char *GetId(void)
{
return szId;
}
void SetSex(char *asex)
{
strcpy( sex, asex);
}
void GetSex()
{
cout<<sex;
}
virtual void OutPut(void)
{
cout<<"这是一个学生:"<<endl<<"ID是 "<<szId<<endl<<"性别是 "<<sex<<endl;
} //虚函数
};
class grad:public student //共有继承
{
protected:
char szGradTime[30];
char szDegree[30];
public:
void SetGradTime(const char *aGradTime)
{
strcpy(szGradTime,aGradTime);
}
char *GetGradTime(void)
{
return szGradTime;
}
void SetDegree(const char *aDegree)
{
strcpy(szDegree,aDegree);
szDegree[29]=0x0;
}
char *GetDegree(void)
{
return szDegree;
}
virtual void OutPut(void)
{
cout<<"这是一个毕业生: "<<endl<<"ID是 "<<szId<<endl<<"性别是 "<<sex<<endl<<"毕业时间是 "<<szGradTime<<endl<<"学位是 "<<szDegree<<endl;
} //虚函数
};
void main() //主函数
{
student aStudent;
grad aGrad;
aStudent.SetId("一号");
aStudent.SetSex("male");
aGrad.SetId("二号");
aGrad.SetSex("female");
aGrad.SetGradTime("2009-5-5");
aGrad.SetDegree("硕士");
aStudent.OutPut();
cout<<"*****************我是华丽的分割线***************"<<endl;
aGrad.OutPut();
cout<<"*****************我是华丽的分割线***************"<<endl;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <iostream.h>
#include <memory.h>
class student{
protected:
char szId[10];
bool blnSex;
public:
student()
{
memset(szId,0x0,sizeof(szId));
blnSex=false;
}
student(const char *aId,bool aSex)
{
memcpy(szId,aId,9);
szId[9]=0x0;
blnSex=aSex;
}
~student()
{
}
public:
void SetId(const char *aId)
{
memcpy(szId,aId,9);
szId[9]=0x0;
}
char *GetId(void)
{
return szId;
}
void SetSex(bool aSex)
{
blnSex=aSex;
}
bool GetSex(void)
{
return blnSex;
}
virtual void OutPut(void)
{
cout<<"this is a student: ID=["<<szId<<"] sex=["<<blnSex<<"]"<<endl;
}
};
class grad:public student
{
protected:
char szGradTime[30];
char szDegree[30];
public:
grad()
{
memset(szGradTime,0x0,sizeof(szGradTime));
memset(szDegree,0x0,sizeof(szDegree));
}
grad(const char *aGradTime,const char *aDegree)
{
memcpy(szGradTime,aGradTime,29);
szGradTime[29]=0x0;
memcpy(szDegree,aDegree,29);
szDegree[29]=0x0;
}
~grad()
{
}
public:
void SetGradTime(const char *aGradTime)
{
memcpy(szGradTime,aGradTime,29);
szGradTime[29]=0x0;
}
char *GetGradTime(void)
{
return szGradTime;
}
void SetDegree(const char *aDegree)
{
memcpy(szDegree,aDegree,29);
szDegree[29]=0x0;
}
char *GetDegree(void)
{
return szDegree;
}
virtual void OutPut(void)
{
cout<<"this is a grad: ID=["<<szId<<"] Sex=["<<blnSex<<"]"<<" GradTime=["<<szGradTime<<"] Degree=["<<szDegree<<"]"<<endl;
}
};
int main(void)
{
student aStudent;
grad aGrad;
aStudent.SetId("1234");
aStudent.SetSex(true);
aGrad.SetId("00001");
aGrad.SetSex(false);
aGrad.SetGradTime("2009-5-5");
aGrad.SetDegree("硕士");
aStudent.OutPut();
aGrad.OutPut();
char c;
cin>>c;
return 0;
}
#include <memory.h>
class student{
protected:
char szId[10];
bool blnSex;
public:
student()
{
memset(szId,0x0,sizeof(szId));
blnSex=false;
}
student(const char *aId,bool aSex)
{
memcpy(szId,aId,9);
szId[9]=0x0;
blnSex=aSex;
}
~student()
{
}
public:
void SetId(const char *aId)
{
memcpy(szId,aId,9);
szId[9]=0x0;
}
char *GetId(void)
{
return szId;
}
void SetSex(bool aSex)
{
blnSex=aSex;
}
bool GetSex(void)
{
return blnSex;
}
virtual void OutPut(void)
{
cout<<"this is a student: ID=["<<szId<<"] sex=["<<blnSex<<"]"<<endl;
}
};
class grad:public student
{
protected:
char szGradTime[30];
char szDegree[30];
public:
grad()
{
memset(szGradTime,0x0,sizeof(szGradTime));
memset(szDegree,0x0,sizeof(szDegree));
}
grad(const char *aGradTime,const char *aDegree)
{
memcpy(szGradTime,aGradTime,29);
szGradTime[29]=0x0;
memcpy(szDegree,aDegree,29);
szDegree[29]=0x0;
}
~grad()
{
}
public:
void SetGradTime(const char *aGradTime)
{
memcpy(szGradTime,aGradTime,29);
szGradTime[29]=0x0;
}
char *GetGradTime(void)
{
return szGradTime;
}
void SetDegree(const char *aDegree)
{
memcpy(szDegree,aDegree,29);
szDegree[29]=0x0;
}
char *GetDegree(void)
{
return szDegree;
}
virtual void OutPut(void)
{
cout<<"this is a grad: ID=["<<szId<<"] Sex=["<<blnSex<<"]"<<" GradTime=["<<szGradTime<<"] Degree=["<<szDegree<<"]"<<endl;
}
};
int main(void)
{
student aStudent;
grad aGrad;
aStudent.SetId("1234");
aStudent.SetSex(true);
aGrad.SetId("00001");
aGrad.SetSex(false);
aGrad.SetGradTime("2009-5-5");
aGrad.SetDegree("硕士");
aStudent.OutPut();
aGrad.OutPut();
char c;
cin>>c;
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
底层函数。。。
memcpy换成strcpy要好些吧~如果不是非常必要的话
增强可读性。。。
memcpy换成strcpy要好些吧~如果不是非常必要的话
增强可读性。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一楼的,辛苦了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一楼NB,真能写、、
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询