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