📄 univ.cpp
字号:
//the classes and subclass of a university
//file univ.h
#include<iostream.h>
#include<string.h>
const char null='\0';
static char*strsave(char*s)
{
char*p;
p= new char[strlen(s)+1];
strcpy(p,s);
return p;
}
class data__rec
{
private:
char*last__name;
char*first__name;
char*street__address;
char*city;
char*state;
char*zip;
public:
data__rec()
{
last__name=null;
first__name=null;
street__address=null;
city=null;
state=null;
zip=null;
}
data__rec(char*ln,char*fn,char*st,char*cty,char*sta,char*zp)
{
last__name=strsave(ln);
first__name=strsave(fn);
street__address=strsave(st);
city=strsave(cty);
state=strsave(sta);
zip=strsave(zp);
}
~data__rec()
{
delete last__name;
delete first__name;
delete city;
delete state;
delete zip;
}
void print()
{
cout<<"\n"<<last__name<<" "<<first__name<<"\n"<<street__address<<"\n"
<<city<<" "<<","<<state<<" "<<zip;
}
};
class student:virtual public data__rec
//this class is derived from data__rec and inherity all the public
//members of the parent class
{
private:
char*major;
int id__number;
int level;
public:
student(char*ln,char*fn,char*st,char*cty,char*sta,char*zp,char*m,int id,int lv)
:data__rev(ln,fn,st,cty,sta,zp),major(strsave(m)),id__number(id)
level(lv);
student(char*m,int id,int lv):major (strsave(m)),id__number(id),level(lv)
{}
~student()
{delete major}
void print();
};
void student::print()
{
data__rec::print();
cout<<"\n ld number-->"<<id__number<<"\n level-->$"<<level;
}
class staff:virtual public data__rec
//this class id derived from data__rec
{
//private data
private:
char*dept;
float hourly__wage;
public:
staff(char*ln,char*fn,char*st,char*cty,char*sta,cha*zp,char*dp,float hrwg)
:data__rec(ln,fn,st,cty,sta,zp),dept(strsave(dp),hourly__wage(hrwg))
{}
staff(char*dp,float hrwg):dept(strsave(dp),hourly__wage(hrwg)
{}
~staff()
{delete dept;}
void print();
};
void staff::print()
{
data__rec::print();
cout<<"\ndepartment-->"<<dept<<"\nhourly wage-->$"<<hourly__wage;
}
class professor:public staff
//this class is derived from derived class staff and inherits all
//the public members of the parent class
{
private:
float salary;
public:
professor(char*ln,char*fa,char*st,char*cty,char*sta,char*zp,char*dp,float sal)
:data__rec(ln,st,cty,sta,zp)
{}
void print();
};
void professor::print()
{
staff::print();
cout<<"\nsalary-->$"<<salary;
}
class student__staff:public student,public staff
{
public:
studenf__staff(char*ln,char*fn,char*st,char*cty,char*sta,char*zp,char*m,int id,int lv,
char*dp,float hrwg):data__rec(ln,fn,st,sty,sta,zp),student(m,id,lv),staff(dp,hrwg)
{}
void print();
};
void student__staff::print()
{
student::print();
staff::print();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -