當前位置:
首頁 >
C++语法学习笔记十四:派生类-调用顺序-访问等级-函数遮蔽
發布時間:2023/12/18
43
豆豆
生活随笔
收集整理的這篇文章主要介紹了
C++语法学习笔记十四:派生类-调用顺序-访问等级-函数遮蔽
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
實例代碼:
#include <iostream> #include <string> #include <vector>using namespace std;//基類//類定義/ 類聲明 class Human{ public:Human(){std::cout << " 執行了Human::Human() " << std::endl;}Human(int abc){std::cout << " 執行了Human::Human(int) " << std::endl;}void funcpub(){std::cout << " 執行了Human::funcpub() " << std::endl;}void somenamefunc(){std::cout << " 執行了Human::somenamefunc() " << std::endl;}public:int m_age; //年齡char m_name[100]; //名字}; // 類定義/ 類聲明時 大家千萬不要忘記末尾的;//子類//男人 class Men : public Human{ //表示Men 是Human的子類 public:Men(){std::cout << " 執行了Men::Men() " << std::endl;}Men(int abc){std::cout << " 執行了Men::Men(int) " << std::endl;}void somenamefunc(){Human::somenamefunc(); //調用父類somenamefunc函數std::cout << " 執行了Men::somenamefunc() " << std::endl;}public:using Human::somenamefunc;}; // 類定義/ 類聲明時 大家千萬不要忘記末尾的;int main() {//一: 派生類概念//類之間有一種層次關系,有父親類,有孩子類。//車這個類,當成父類(也叫基類,超類),派生出卡車、轎車,他們屬于孩子類(子類/派生類)//繼承:有父親類,有孩子類,構成了層次關系。繼承 這種概念,是咱們面向對象程序設計的核心思想之一。//這種繼承,說白了就是,我們要先定義一個父類。父類中定義一些公用的成員變量,成員函數。//我們通過繼承父類來構建新的類:子類,所以,寫代碼時,我們只需要寫和子類相關的一些內容即可。//子類一般會比父類更加龐大//class Men : public Human{ //表示Men 是Human的子類//class 子類名: 繼承方式 父類名//繼承方式(訪問等級/訪問權限): public /protected/private://二: 派生類對象定義時調用構造函數的順序Men men0; // 當定義子類對象時,是要調用父類和子類的構造函數的,而且,父類的構造函數的函數體先執行,//子類的構造函數的函數體后執行。//三:public 、 protected 、 private//四:函數遮蔽Men men; men.funcpub(); //子類調用父類的函數//也就是說,子類中如果有一個同名函數,那么父類中,不管有幾個同名函數,子類中都無法訪問到。//如果我們確實是想調用父類中的同名函數,怎么辦?//(1) 在子類的成員函數中,用“父類::函數名” 強制嗲用父類函數。men.somenamefunc();//(2) using : using namespace//C++ 11 :讓父類同名函數在子類中可見。//通過using 這個關鍵字,讓父類的同名函數在子類中可見,說白了就是“讓父類同名函數在子類中以重載的方式來使用”;//說明://a) using Human::somenamefunc; 只能指定函數名,則凡是基類中的public的somenamefunc,在子類中都可見,你無法讓//一部分父類中的同名函數可見。//b) using 引入的主要目的是用來實現在子類對象中調用父類的重載版本。該函數在父類中的參數跟子類中的參數,類型/個數,總有一個不用。system("pause");return 0; }總結
以上是生活随笔為你收集整理的C++语法学习笔记十四:派生类-调用顺序-访问等级-函数遮蔽的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: glassfish插件_可扩展Glass
- 下一篇: C++语法学习笔记三十九:shared_