《C++程序设计(谭浩强)》代码,均按章节分类
源代码在线查看: 例11.10.txt
例11.10 定义一个基类Student(学生),再定义Student类的公用派生类Graduate(研究生),用指向基类对象的指针输出数据。
本例主要是说明用指向基类对象的指针指向派生类对象,为了减少程序长度,在每个类中只设很少成员。学生类只设num(学号),name(名字)和score(成绩)3个数据成员,Graduate类只增加一个数据成员pay(工资)。程序如下:
#include
#include
using namespace std;
class Student//声明Student类
{public:
Student(int, string,float); //声明构造函数
void display( ); //声明输出函数
private:
int num;
string name;
float score;
};
Student::Student(int n, string nam,float s) //定义构造函数
{num=n;
name=nam;
score=s;
}
void Student::display( ) //定义输出函数
{cout cout cout }
class Graduate:public Student //声明公用派生类Graduate
{public:
Graduate(int, string ,float,float); //声明构造函数
void display( ); //声明输出函数
private:
float pay; //工资
};
Graduate::Graduate(int n, string nam,float s,float p):Student(n,nam,s),pay(p){ }
//定义构造函数
void Graduate::display() //定义输出函数
{Student::display(); //调用Student类的display函数
cout }
int main()
{Student stud1(1001,″Li″,87.5); //定义Student类对象stud1
Graduate grad1(2001,″Wang″,98.5,563.5); //定义Graduate类对象grad1
Student *pt=&stud1;//定义指向Student类对象的指针并指向stud1
pt->display( ); //调用stud1.display函数
pt=&grad1; //指针指向grad1
pt->display( ); //调用grad1.display函数
}