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

c++ 繼承類中函數重載的問題

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

問題描述

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

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){};
};

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

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.

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

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,因為它已經在派生類中找到了.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.

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

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

相關文檔推薦

How can I read and manipulate CSV file data in C++?(如何在 C++ 中讀取和操作 CSV 文件數據?)
In C++ why can#39;t I write a for() loop like this: for( int i = 1, double i2 = 0; (在 C++ 中,為什么我不能像這樣編寫 for() 循環: for( int i = 1, double i2 = 0;)
How does OpenMP handle nested loops?(OpenMP 如何處理嵌套循環?)
Reusing thread in loop c++(在循環 C++ 中重用線程)
Precise thread sleep needed. Max 1ms error(需要精確的線程睡眠.最大 1ms 誤差)
Is there ever a need for a quot;do {...} while ( )quot; loop?(是否需要“do {...} while ()?環形?)
主站蜘蛛池模板: 国产乱码精品一区二区三区忘忧草 | 亚洲日韩中文字幕 | 成人黄色av网站 | 成人免费久久 | 高清色| 午夜影院毛片 | 国产一区二区在线免费视频 | 久久精品av麻豆的观看方式 | 国产成都精品91一区二区三 | 国产一区二区三区四区区 | 国产一区二区三区 | 亚洲成人精品国产 | 在线视频日韩 | 欧美精品福利 | 国产丝袜人妖cd露出 | av天空| 日批日韩在线观看 | 亚洲一区二区三区桃乃木香奈 | 久久不射电影网 | 美女视频h | 欧美成人免费在线视频 | 免费在线黄色av | 久久成人一区 | 国产激情自拍视频 | 美女精品一区 | 九九成人 | 麻豆91精品91久久久 | 91精品久久久久 | 99爱在线观看| 99精品国产在热久久 | 成人在线免费观看 | 一区在线播放 | 国产在线一区二区三区 | 在线观看视频91 | 亚洲成人日韩 | 91久久精 | 国产一区二区在线免费观看 | 日韩在线播放一区 | 色婷婷激情综合 | 久久久久久国产精品免费免费男同 | 免费国产黄 |