C++有关类、继承、多态、构造、析构、重载

/**
*  *  class.cpp
*  vesion:1.0  2006-9-12
*  auther:jsp
*  (C++)(oop)->有关类、继承、多态、构造、析解、重载
*/

/**
*Student()、Student(char *Pname,char *PstuId,char *pclassId,char *pprofeId);
*两个构造函数是为了演示构造函数的重载.cost函数就存在多态,于是
*在此处用了virtual关键词,即:虚函数。
*
*/

#include"iostream.h"
#include"string.h"

class  Student{//Student类
public:
 Student();
 Student(char *Pname,char *PstuId,char *pclassId,char *pprofeId);
 ~Student();
   virtual float cost(float stayCost,float lifeCost,float studyCost)
 {
  return stayCost+lifeCost+studyCost;
 }
protected:
 char name[10];
 char stuId[10];
    char classId[10];
 char profeId[10];
};
//不带参数的构造函数
Student::Student()
{
 strcpy(name, "李博士");
 strcpy(stuId,"100001");
 strcpy(classId,"200001");
 strcpy(profeId ,"10001");
 cout<<"姓名/t"<<"学号/t"<<"班级号/t"<<"专业代码/t"<<"/n";
 cout<<name<<"/t"<<stuId<<"/t"<<classId<<"/t"<<profeId<<"/n";
}
//析构函数
Student::~Student()
{
 cout<<name<<" WAS FREE!!"<<"/n";
}
//带参数的构造函数
Student::Student(char *Pname,char *PstuId,char *pclassId,char *pprofeId)
{
 strcpy(name, Pname);
 strcpy(stuId,PstuId);
 strcpy(classId,pclassId);
 strcpy(profeId ,pprofeId);
 cout<<"姓名/t"<<"学号/t"<<"班级号/t"<<"专业代码/t"<<"/n";
 cout<<name<<"/t"<<stuId<<"/t"<<classId<<"/t"<<profeId<<"/n";

}

class StuDoctor:public Student
{
public:
 StuDoctor(char *Pname,char *PstuId,char *pclassId,char *pprofeId,char *pteacher):Student(Pname,PstuId,pclassId,pprofeId)
 {
  strcpy(teacher,pteacher);
  cout<<"姓名/t"<<"学号/t"<<"班级号/t"<<"专业代码/t"<<"导师"<<"/n";
     cout<<name<<"/t"<<stuId<<"/t"<<classId<<"/t"<<profeId<<"/t/t"<<teacher<<"/n";

 }
 virtual float cost(float stayCost,float lifeCost,float studyCost)
 {
  return stayCost+studyCost;
 }
 ~StuDoctor();
protected:
 char   teacher[10];
};
StuDoctor::~StuDoctor()
{
 cout<<name<<" WAS FREE!!"<<"/n";
}

void disp(Student * X)
{
 cout<<X->cost(800,2000,250)<<"/n";
}
void main()
{
 Student  z;
 Student  gs("王五","960515","960515","1015");
 StuDoctor ds("jsp","960515","9605","1015","chtor");
 disp(&z);
 disp(&ds);
}
 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值