首先我們以一個(gè)學(xué)生類為例,介紹繼承的寫法:(程序17.3.1) //student.h #include <iostream> using namespace std; class student//學(xué)生類作為父類 { public: student(char *n,int a,int h,int w);//帶參數(shù)的構(gòu)造函數(shù) student();//不帶參數(shù)的構(gòu)造函數(shù) void set(char *n,int a,int h,int w);//設(shè)置 char * sname(); int sage(); int sheight(); int sweight(); protected: char name[10];//姓名 int age;//年齡 int height;//身高 int weight;//體重 private: int test; }; char * student::sname() { return name; } int student::sage() { return age; } int student::sheight() { return height; } int student::sweight() { return weight; } void student::set(char *n,int a,int h,int w) { int i; for (i=0;n[i]!='/0';i++) { name[i]=n[i]; } name[i]='/0'; age=a; height=h; weight=w; return; } student::student(char *n,int a,int h,int w) { cout <<"Constructing a student with parameter..." <<endl; set(n,a,h,w); } student::student() { cout <<"Constructing a student without parameter..." <<endl; } //undergraduate.h #include "student.h" class Undergraduate:public student//本科生類作為子類,繼承了學(xué)生類 { public: double score(); void setGPA(double g);//設(shè)置績(jī)點(diǎn) bool isAdult();//判斷是否成年 protected: double GPA;//本科生績(jī)點(diǎn) }; double Undergraduate::score() { return GPA; } void Undergraduate::setGPA(double g) { GPA=g; return; } bool Undergraduate::isAdult() { return age>=18?true:false;//子類訪問(wèn)父類的保護(hù)成員數(shù)據(jù) } //main.cpp #include <iostream> #include "undergraduate.h" using namespace std; int main() { Undergraduate s1;//新建一個(gè)本科生對(duì)象 s1.set("Tom",21,178,60); s1.setGPA(3.75); cout <<s1.sname() <<endl; cout <<s1.sage() <<endl; cout <<s1.sheight() <<endl; cout <<s1.sweight() <<endl; cout <<s1.score() <<endl; cout <<s1.isAdult() <<endl; return 0; }
運(yùn)行結(jié)果: Constructing a student without parameter... Tom 21 178 60 3.75 1 在使用繼承之前,我們必須保證父類是已經(jīng)定義好的。如果父類是虛無(wú)的、沒(méi)有被定義的,那么子類也就沒(méi)什么好繼承的了。定義一個(gè)子類的語(yǔ)法格式為: class 子類名:繼承方式父類名; 根據(jù)程序17.3.1的運(yùn)行結(jié)果,我們可以清楚地看到,學(xué)生類里面的公有和保護(hù)成員都已經(jīng)被繼承到本科生類。本科生類可以使用學(xué)生類的成員函數(shù),也可以訪問(wèn)學(xué)生類的保護(hù)成員。而本科生類中定義的成員則是對(duì)學(xué)生類的補(bǔ)充,并且也能夠被使用。