freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

[計算機軟件及應用]第7章 繼承-文庫吧

2025-09-17 23:21 本頁面


【正文】 orker:public member//工人類公有繼承類 member {char station[10]。//崗位 public: worker(long n,char* na,char s=′m′,int mn=0,char* md=″\\0″,char* st=″\\0″): member(n,na,s,mn,md){ strcpy(station,st)。 }//構造函數 void w_show() {cout″工人 \\t″。 m_show()。//訪問基類的公有成員 cout″崗位 =″stationendlendl。 } }。 class teacher:private member//教師類私有繼承基類 member {char course[10]。//執(zhí)教課程 public: teacher(long n,char* na,char s=′m′,int mn=0,char* md=″\\0″, char* tc=″\\0″): member(n,na,s,mn,md){ strcpy(course,tc)。 }//構造函數 void t_show() {cout″教師 \\t″。 m_show()。//訪問基類的公有成員 cout″課程 =″courseendlendl。 } }。 void main() { worker w(123456,″王祥 ″,′m′,3761,″生物系 ″,″實驗室 ″)。 ()。 ()。//worker類公有繼承 member,所以可以直接訪問 member類的公有成員 //()。 member類私有繼承 people,不可以直接訪問 people類的公有成員 teacher t(661001,″李輝 ″,′m′,1954,″計算機系 ″,″C++″)。 ()。 //()。 teacher類私有繼承 member,不可以直接訪問 member類的公有成員 //()。 teacher類私有繼承 member, member私有繼承 people類,不可以直接訪問 people類的公有成員 } 執(zhí)行結果為: 工人 教工 人員: 編號 =123456 姓名 =王祥 性別 =m 教工編號: m_num=3761 單位 =生物系 崗位 =實驗室 教工 人員: 編號 =123456 姓名 =王祥 性別 =m 教工編號: m_num=3761單位 =生物系 教師 教工 人員: 編號 =661001 姓名 =李輝 性別 =m 教工編號: m_num=1954 單位 =計算機系 課程 =C++ 3.保護繼承 【 例 793】 ? 當派生類的繼承方式是保護繼承( protected)時,基類的 public成員和 protected成員被繼承到派生類中成為派生類的 protected成員,基類的 private成員被繼承到派生類中仍為 private成員。 【 例 】 類的保護繼承。 include class A{ int i。 protected: int j。 void show_A1(){ cout″A保護顯示 : i=″i″ j=″jendl。 } public: A(int x,int y){ i=x。 j=y。 } void show_A2() {cout″A2在執(zhí)行 show_A1()......″。 show_A1()。 cout″A2執(zhí)行完畢。 ″endl。 }}。 class B:protected A{ int x。 public: B(int i,int j,int k):A(i,j){ x=k。 } void show_B() {cout″B在執(zhí)行 show_A1()......″。 show_A1()。//保護繼承可以訪問 A的保護成員 cout″B公有顯示 :x=″xendl。 cout″B執(zhí)行完畢。 ″endl。 }}。 class C:public B{ public: C(int i,int j,int x):B(i,j,x) { }//空語句 void show_C() {cout″C在執(zhí)行 show_A2()......″。 show_A2()。//說明可以訪問 A2,A2是 B的保護成員 cout″C在執(zhí)行 show_A1()......″。//這兩句是多余的。 show_A1()。//說明可以訪問 A1,A1也是 B的保護成員 cout″C在執(zhí)行 show_B()......″。 show_B()。 cout″C執(zhí)行完畢。 ″endl。 } }。 void main() { B b(1,2,3)。 ()。 //()。 B從 A類保護繼承,所以不能直接訪問 A類的公有成員 C c(100,200,300)。 ()。 //()。 C從 B類公有繼承,而 B從 A保護繼承,所以不能直接訪問 A類的公有成員 } 執(zhí)行結果為: B在執(zhí)行 show_A1()......A保護顯示: i=1 j=2 B公有顯示: x=3 B執(zhí)行完畢。 C在執(zhí)行 show_A2()......A2在執(zhí)行 show_A1()......A保護顯示: i=100 j=200 A2執(zhí)行完畢。 C在執(zhí)行 show_A1()......A保護顯示: i=100 j=200 C在執(zhí)行 show_B()......B在執(zhí)行 show_A1()......A保護顯示: i=100 j=200 B公有顯示: x=300 B執(zhí)行完畢。 C執(zhí)行完畢。 i j x Show_A1() Show_A2() Show_B() 在 A 中 私有 保護 無 保護 公有 無 在 B中 不可見 保護 私有 保護 保護 公有 在 C中 不可見 保護 不可見 保護 保護 公有 繼承方式與成員的訪問屬性 派生類的構造函數和析構函數 ? 在派生關系中,構造函數和析構函數是不能繼承的,對派生類要重新定義構造函數和析構函數 派生類構造函數的定義格式: 派生類名(總參數列表) : 基類名(參數列表 1),子對象名 1(參數列表 2),子對象名 2(參數列表 3), … { 派生類中新增數據成員的初始化語句 } 注意: 1)派生類構造函數可在類中聲明,類外定義,聲明時不給出基類構造函數名及其參數列表; 2)派生類構造函數定義時,其參數列表既有參數類型也有參數名稱,而其后的基類的參數列表只有參數名稱; ? 執(zhí)行構造函數的順序是:派生類構造函數先調用基類的構造函數,對基類數據成員初始化,再執(zhí)行派生類構造函數本身,對派生類數據成員初始化。 ? 包含子對象的派生類構造函數的執(zhí)行順序是:派生類構造函數先調用基類的構造函數,對基類數據成員初始化;再調用子對象構造函數,對子對象數據成員初始化,最后執(zhí)行派生類構造函數本身,對派生類數據成員初始化。 2.派生類的析構函數 ? 派生類析構函數沒有函數類型、沒有參數,其定義及使用方法與一般類的析構函數相同。派生類的析構函數用來對派生類中所增加的成員進行清理工作,同時系統會自動調用基類的析構函數和子對象的析構函數,對基類和子對象進行清理。 ? 析構函數的調用順序與構造函數正好相反:先執(zhí)行派生類的析構函數,然后調用子對象的析構函數,最后調用基類的析構函數,對基類進
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1