日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++多重继承

發布時間:2025/3/15 c/c++ 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++多重继承 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C++多重繼承

1.1一個派生類繼承多個基類稱為多重繼承。 1.2聲明多重繼承的方法。 如果聲明了類A,B,C,可以聲明多重派生類D。 class D:public A,private B,protected C {類D新增加的成員} 1.2多重繼承派生類的構造函數,如: 派生類構造函數名(總參數表列):基類1構造函數(參數表列),基類2構造函數(參數表列),基類3構造函數(參數表列) {派生類中新增成員的初始化語句} #include <iostream> #include <string> using namespace std; class student { public: student(string n,bool s,float sco):name(n),sex(s),score(sco){} protected: string name; bool sex; float score; }; class teacher { public: teacher(string n,string t,int a):name1(n),title(t),age(a){} protected: string name1; string title; int age; }; class graduate:public student,public teacher { public: graduate(string n,bool s,float sco,string t,int a,float w):student(n,s,sco),teacher(n,t,a),wage(w){} void show(); private: float wage; }; void graduate::show() { cout << "name: " << name << endl; cout << "sex: " << sex << endl; cout << "score: " << score << endl; cout << "title: " << title << endl; cout << "wage: " << wage << endl; } int main() { graduate gra("fuck",true,100,"shit",20,9999999); gra.show(); return 0; }

C++多重繼承引起的二義性問題

1.1多重繼承經常會由于繼承成員同名而產生二義性問題。 1.2我們可以用域運算符::,來限定: c.A::age=5; //引用c對象中基類A的數據成員a 1.3派生類中同名成員會覆蓋基類中的同名成員。 1.4不同的成員函數,只有在函數名和參數個數相同,類型相匹配的情況下,才會發生同名覆蓋,如果只有函數名相同而參數不同,不會發生同名覆蓋,而屬于函數重載。 1.5一段代碼: #include <iostream> using namespace std; class A { public: void display(){cout << age << endl;} int age; }; class B { public: void display(){cout << age << endl;} int age; }; class C:public A,public B { public: C(int c):ceat(c){} void show(){cout << A::age << "c" << endl;} int age; private: int ceat; }; int main() { C c(5); c.age=1; c.A::age=5; c.show(); return 0; }

總結

以上是生活随笔為你收集整理的C++多重继承的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。