淺談C++繼承中的名字查找
更新時(shí)間:2017年01月10日 09:54:55 投稿:jingxian
下面小編就為大家?guī)?lái)一篇淺談C++繼承中的名字查找。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
實(shí)例如下:
#include<iostream> #include<string> using namespace std; class Base { public: void func() { cout << "func() in Base." << endl; } void func(int a) { cout << "func(int a) in Base." << endl; } void func(string s) { cout << "func(string s) in Base." << endl; } }; class Derived : public Base { public: //using Base::func; void print() { cout << "func() in Derived." << endl; } }; int main() { Derived d; d.Base::func();//指定基類(lèi)版本 d.func(); d.func(12);//error,可在派生類(lèi)中添加using Base::print; d.func("abc");//error,可在派生類(lèi)中添加using Base::print; system("pause"); return 0; } //一個(gè)對(duì)象,引用,指針的靜態(tài)類(lèi)型決定了該對(duì)象哪些成員可見(jiàn)。 //派生類(lèi)作用域嵌套在基類(lèi)作用域中 //派生類(lèi)成員將屏蔽同名的基類(lèi)成員 //如果派生類(lèi)想通過(guò)自身類(lèi)型使用的基類(lèi)中重載版本,則派生類(lèi)必須要么覆蓋所有重載版本,要么一個(gè)也不覆蓋。 //利用using聲明可把基類(lèi)中的所有重載版本都添加到派生類(lèi)作用域中 //名字查找先于類(lèi)型檢查,如果在派生類(lèi)中找到了調(diào)用的函數(shù)名,則不會(huì)繼續(xù)向上查找,接著進(jìn)行類(lèi)型檢查
以上這篇淺談C++繼承中的名字查找就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
C++?折疊參數(shù)包詳解(悄然增強(qiáng)編程效率)
折疊參數(shù)就是一個(gè)參數(shù)包, 代表是多個(gè)未知,tuple元組就是一個(gè)折疊參數(shù)的使用,這篇文章主要介紹了C++?折疊參數(shù)包悄然增強(qiáng)編程效率,需要的朋友可以參考下2023-05-05C++實(shí)現(xiàn)LeetCode(104.二叉樹(shù)的最大深度)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(104.二叉樹(shù)的最大深度),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07C++常用的11種設(shè)計(jì)模式解釋及示例代碼詳解
c++常用的設(shè)計(jì)模式包括單例模式、工廠(chǎng)模式、抽象工廠(chǎng)模式、適配器模式、裝飾者模式、代理模式、外觀(guān)模式、橋接模式、組合模式、享元模式、觀(guān)察者模式和命令模式等,這篇文章主要介紹了C++常用的11種設(shè)計(jì)模式解釋及示例,需要的朋友可以參考下2023-02-02C++?高精度乘法運(yùn)算的實(shí)現(xiàn)
本文主要介紹了C++?高精度乘法運(yùn)算的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01