?? 例11.10.txt
字號(hào):
例11.10 定義一個(gè)基類Student(學(xué)生),再定義Student類的公用派生類Graduate(研究生),用指向基類對(duì)象的指針輸出數(shù)據(jù)。
本例主要是說(shuō)明用指向基類對(duì)象的指針指向派生類對(duì)象,為了減少程序長(zhǎng)度,在每個(gè)類中只設(shè)很少成員。學(xué)生類只設(shè)num(學(xué)號(hào)),name(名字)和score(成績(jī))3個(gè)數(shù)據(jù)成員,Graduate類只增加一個(gè)數(shù)據(jù)成員pay(工資)。程序如下:
#include <iostream>
#include <string>
using namespace std;
class Student//聲明Student類
{public:
Student(int, string,float); //聲明構(gòu)造函數(shù)
void display( ); //聲明輸出函數(shù)
private:
int num;
string name;
float score;
};
Student::Student(int n, string nam,float s) //定義構(gòu)造函數(shù)
{num=n;
name=nam;
score=s;
}
void Student::display( ) //定義輸出函數(shù)
{cout<<endl<<″num:″<<num<<endl;
cout<<″name:″<<name<<endl;
cout<<″score:″<<score<<endl;
}
class Graduate:public Student //聲明公用派生類Graduate
{public:
Graduate(int, string ,float,float); //聲明構(gòu)造函數(shù)
void display( ); //聲明輸出函數(shù)
private:
float pay; //工資
};
Graduate::Graduate(int n, string nam,float s,float p):Student(n,nam,s),pay(p){ }
//定義構(gòu)造函數(shù)
void Graduate::display() //定義輸出函數(shù)
{Student::display(); //調(diào)用Student類的display函數(shù)
cout<<″pay=″<<pay<<endl;
}
int main()
{Student stud1(1001,″Li″,87.5); //定義Student類對(duì)象stud1
Graduate grad1(2001,″Wang″,98.5,563.5); //定義Graduate類對(duì)象grad1
Student *pt=&stud1;//定義指向Student類對(duì)象的指針并指向stud1
pt->display( ); //調(diào)用stud1.display函數(shù)
pt=&grad1; //指針指向grad1
pt->display( ); //調(diào)用grad1.display函數(shù)
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -