c++程序设计中虚基类,多继承知识点
生活随笔
收集整理的這篇文章主要介紹了
c++程序设计中虚基类,多继承知识点
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一.前言
如上
二.題目
分別聲明Teacher(教師)類和Cadre(干部)類,采用多重繼承方式由這兩個(gè)類派
生出新類Teacher_Cadre(教師兼干部)類。要求:
(1)在兩個(gè)基類中都包含姓名、年齡、性別、地址、電話等數(shù)據(jù)成員。
(2)在Teacher類中還包含數(shù)據(jù)成員title(職稱),在Cadre類中還包含數(shù)據(jù)成員post
(職務(wù))。在Teacher_Cadre類中還包含數(shù)據(jù)成員wages(工資)。
(3)對(duì)兩個(gè)基類中的姓名、年齡、性別、地址、電話等數(shù)據(jù)成員用相同的名字,在引用
這些數(shù)據(jù)成員時(shí),指定作用域。
(4)在類體中聲明成員函數(shù),在類外定義成員函數(shù)。
(5)在派生類Teacher_Cadre的成員函數(shù)show 中調(diào)用Teacher類中的display函數(shù),
輸出姓名、年齡、性別、職稱、地址、電話,然后再用cout語(yǔ)句輸出職務(wù)與工資。
三.代碼
#include<iostream> #include<string> using namespace std; class Person{//基類 public:Person(string,int,char,string,string);//構(gòu)造函數(shù) void display();//展示數(shù)據(jù)信息 protected:string name;//姓名int age;//年齡char sex;//性別string addr;//住址string tel;//電話 };Person::Person(string n,int a,char s,string ad,string t){//構(gòu)造函數(shù) name=n;age=a;sex=s;addr=ad;tel=t; } void Person::display() {//展示數(shù)據(jù)信息cout<<"name: "<<name<<endl;cout<<"age: "<<age<<endl;cout<<"sex: "<<sex<<endl;cout<<"addr: "<<addr<<endl;cout<<"tel: "<<tel<<endl; }class Teacher:virtual public Person{//公用派生類Teacher public:Teacher(string n,int a,char s,string ad,string t,string ti);//構(gòu)造函數(shù)void display();//展示數(shù)據(jù)信息 protected:string title;//職稱 };//構(gòu)造函數(shù) Teacher::Teacher(string n,int a,char s,string ad,string t,string ti):Person(n,a,s,ad,t){title=ti; } void Teacher::display(){//展示數(shù)據(jù)信息 Person::display() ;cout<<"title: "<<title<<endl; } class Cadre:virtual public Person{//公用派生類Cadrepublic:Cadre(string n,int a,char s,string ad,string t,string p);//構(gòu)造函數(shù)void display();//展示數(shù)據(jù)信息protected:string post;//職位 };//構(gòu)造函數(shù) Cadre::Cadre(string n,int a,char s,string ad,string t,string p):Person(n,a,s,ad,t){post=p; } void Cadre::display() {//展示數(shù)據(jù)信息Person::display() ;cout<<"post: "<<post<<endl; }class Teacher_Cadre:public Teacher,public Cadre{//公用派生類 Teacher_Cadrepublic:Teacher_Cadre(string n,int a,char s,string ad,string t,string ti,string p,int w);//構(gòu)造函數(shù)void show();//展示數(shù)據(jù)信息private:int wage;//工資 };//構(gòu)造函數(shù) Teacher_Cadre::Teacher_Cadre(string n,int a,char s,string ad,string t,string ti,string p,int w) :Teacher(n,a,s,ad,t,ti),Cadre(n,a,s,ad,t,p),Person(n,a,s,ad,t){wage=w; }void Teacher_Cadre::show(){//展示數(shù)據(jù)信息Teacher::display();cout<<"post: "<<post<<endl;cout<<"wage: "<<wage<<endl; }int main(){Teacher_Cadre t_c("Wang-li",50,'f',"135 Beijing Road,shanghai","(021)61234567","prof.","president",1534.5);t_c.show();return 0; }總結(jié)
以上是生活随笔為你收集整理的c++程序设计中虚基类,多继承知识点的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 前端用crypto.js进行加密和解密
- 下一篇: c++程序设计中文件输入输出流知识点