求解一道c++编程题(有关“类的单一继承”)

用“单一继承”的方式来实现“学生”和“毕业生”两个类设计相关的数据成员和函数,编程测试继承情况注意:作为“学生”有“学号”,“性别”等而“毕业生”除此还有“毕业时间”“所... 用“单一继承”的方式来 实现“学生”和“毕业生”两个类
设计相关的 数据成员 和 函数,编程测试继承情况
注意:
作为“学生”有“学号”,“性别”等 而“毕业生”除此还有“毕业时间” “所获得学位”等
在 mian()函数中进行测试,可 设计多种继承方式来测试继承的 属性
能不能写简单点 的
1楼这么夸张
。。。。
展开
 我来答
dying_kiss
2009-05-06
知道答主
回答量:8
采纳率:0%
帮助的人:0
展开全部
#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;

}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
moxsone
2009-05-04 · TA获得超过3332个赞
知道大有可为答主
回答量:2796
采纳率:50%
帮助的人:1501万
展开全部
#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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ACM算法日常
2009-05-05 · 超过26用户采纳过TA的回答
知道答主
回答量:143
采纳率:0%
帮助的人:49.3万
展开全部
底层函数。。。
memcpy换成strcpy要好些吧~如果不是非常必要的话
增强可读性。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
can159263
2009-05-04 · TA获得超过243个赞
知道小有建树答主
回答量:170
采纳率:0%
帮助的人:0
展开全部
一楼的,辛苦了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shl329
2009-05-04 · TA获得超过650个赞
知道小有建树答主
回答量:167
采纳率:0%
帮助的人:181万
展开全部
一楼NB,真能写、、
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式