簡體   English   中英

Scope 分辨率為c++

[英]Scope resolution in c++

我有一個程序:

#include <iostream>
using namespace std;

class A {
public:
    virtual void Output() {
        cout << "A";
    }
 
};

class B :public A {
public:
    A::Output();

    void Output() {
        cout << " B ";
    }
};
int main() {
    A* a = new B;
    a->Output();
    return 0;
}

我不明白為什么“A::outPut()”這一行有錯誤。 請幫我解決這個問題。

當在A的子類的方法中使用時, A::Output()是一個從A class 調用Output方法的表達式。與任何其他可執行表達式一樣,它只能在方法內部使用,而不能在 class 主體中使用. 因為 class 主體應該只包含聲明(和定義)。 例如,您不能在 class 主體級別調用函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM