p30.cpp
来自「《C++编程指南(续编)》的一些程序源代码」· C++ 代码 · 共 94 行
CPP
94 行
#include <iostream.h>
#include <string.h>
class Student
{
public:
Student(char * pLN,char * pFN,
int nGrd,unsigned long ulId);
virtual ~Student();
virtual void display(ostream& out)const;
protected:
char * pLName;
char * pFName;
int nGrade;
unsigned long ulID;
};
Student::Student(char * pLN,char * pFN,
int nGrd,unsigned long ulId)
{
pLName=new char[strlen(pLN)+1];
strcpy(pLName,pLN);
pFName=new char[strlen(pFN)+1];
strcpy(pFName,pFN);
nGrade=nGrd;
ulID=ulId;
}
Student::~Student()
{
delete pLName;
delete pFName;
}
void Student::display(ostream& out)const
{
out<<pLName<<","<<pFName<<"-"<<ulID<<"(Grade"<<nGrade<<")";
}
ostream& operator<<(ostream& out,const Student& s)
{
s.display(out);
return out;
}
class BandStudent:public Student
{
public:
BandStudent(char * pLN,char * pFN,
int nGrd,unsigned long ulId,char * pInstrument);
~BandStudent();
virtual void display(ostream& out)const;
protected:
char * pszInstrument;
};
BandStudent::BandStudent(char * pLN,char * pFN,
int nGrd,unsigned long ulId,
char * pInstrument):
Student(pLN,pFN,nGrd,ulId)
{
pszInstrument=new char[strlen(pInstrument)+1];
strcpy(pszInstrument,pInstrument);
}
BandStudent::~BandStudent()
{
delete pszInstrument;
}
void BandStudent::display(ostream& out)const
{
Student::display(out);
out<<"["<<pszInstrument<<"]";
}
void detention(Student& sStudent)
{
cout<<"Detention student:"<<sStudent<<"\n";
}
int main(int,char**)
{
Student sKinsey("Davis","Kinsey",6,123456789L);
detention(sKinsey);
BandStudent sBen("Brown","Ben",6,234567890L,"Trombone");
detention(sBen);
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?