久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

c++ 繼承類中函數(shù)重載的問題

c++ issue with function overloading in an inherited class(c++ 繼承類中函數(shù)重載的問題)
本文介紹了c++ 繼承類中函數(shù)重載的問題的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

這可能是一個菜鳥問題,抱歉.我最近在嘗試處理 C++ 中的一些高級內(nèi)容、函數(shù)重載和繼承時遇到了一個奇怪的問題.

This is possibly a noob question, sorry about that. I faced with a weird issue recently when trying to mess around with some high level stuff in c++, function overloading and inheritance.

我舉一個簡單的例子,只是為了說明問題;

I'll show a simple example, just to demonstrate the problem;

有兩個類,classAclassB,如下所示;

There are two classes, classA and classB, as below;

class classA{
    public:
        void func(char[]){};    
};

class classB:public classA{ 
    public:
        void func(int){};
};

據(jù)我所知 classB 現(xiàn)在應該擁有兩個 func(..) 函數(shù),由于不同的參數(shù)而重載.

According to what i know classB should now posses two func(..) functions, overloaded due to different arguments.

但是當在主方法中嘗試這個時;

But when trying this in the main method;

int main(){
    int a;
    char b[20];
    classB objB;
    objB.func(a);    //this one is fine
    objB.func(b);    //here's the problem!
    return 0;
}

它給出錯誤,因為方法 void func(char[]){}; 位于超類 classA 中,在派生類中不可見,classB.

It gives errors as the method void func(char[]){}; which is in the super class, classA, is not visible int the derived class, classB.

我怎樣才能克服這個問題?這不是 C++ 中的重載方式嗎?我是 C++ 新手,但在 Java 中,我知道我可以使用這樣的東西.

How can I overcome this? isn't this how overloading works in c++? I'm new to c++ but in Java, i know I can make use of something like this.

雖然我已經(jīng)找到了這個線程,它詢問了類似的問題,我認為這兩種情況是不同的.

Though I've already found this thread which asks about a similar issues, I think the two cases are different.

推薦答案

您只需要一個 using:

class classB:public classA{ 
    public:
        using classA::func;
        void func(int){};
};

它不會在基類中搜索 func,因為它已經(jīng)在派生類中找到了.using 語句將另一個重載帶入同一作用域,以便它可以參與重載解析.

It doesn't search the base class for func because it already found one in the derived class. The using statement brings the other overload into the same scope so that it can participate in overload resolution.

這篇關(guān)于c++ 繼承類中函數(shù)重載的問題的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

How can I read and manipulate CSV file data in C++?(如何在 C++ 中讀取和操作 CSV 文件數(shù)據(jù)?)
In C++ why can#39;t I write a for() loop like this: for( int i = 1, double i2 = 0; (在 C++ 中,為什么我不能像這樣編寫 for() 循環(huán): for( int i = 1, double i2 = 0;)
How does OpenMP handle nested loops?(OpenMP 如何處理嵌套循環(huán)?)
Reusing thread in loop c++(在循環(huán) C++ 中重用線程)
Precise thread sleep needed. Max 1ms error(需要精確的線程睡眠.最大 1ms 誤差)
Is there ever a need for a quot;do {...} while ( )quot; loop?(是否需要“do {...} while ()?環(huán)形?)
主站蜘蛛池模板: 国产91丝袜在线熟 | 在线视频亚洲 | av高清毛片 | 日本特黄a级高清免费大片 特黄色一级毛片 | 久久日韩精品一区二区三区 | 国产在线一区二区 | 亚洲美女视频 | 久久精品中文 | 福利视频大全 | 自拍 亚洲 欧美 老师 丝袜 | 欧美在线视频一区二区 | 中文字幕日韩一区 | 成人精品一区二区三区中文字幕 | 日韩久久网 | 日本午夜在线视频 | 涩色视频在线观看 | 国产一区二区成人 | 国产黄色在线观看 | 欧美1页 | 国产精品99免费视频 | 久久亚洲国产精品日日av夜夜 | 91精品国产91久久久久久吃药 | 日韩一二三区视频 | 超碰综合| 四虎永久免费影院 | 2022国产精品| 免费av手机在线观看 | 日韩中文字幕一区二区 | 久久伊人精品一区二区三区 | 欧美a在线 | 亚洲免费视频在线观看 | 成人在线日韩 | 久久久精品一区 | 国产精品久久久久久久久久99 | 黄色片在线 | 亚洲精品久久久一区二区三区 | www.一区二区三区 | av一区二区三区 | 成人网av| 亚洲444kkkk在线观看最新 | 成人三级视频 |