簡體   English   中英

C ++,為什么在結構/類中不需要前向聲明

[英]C++, why is forward declaration not required in structs/classes

在C ++中,為什么編譯以下內容:

struct test {
    void foo() { this->bar++; }
    int bar;
};

但不是以下內容:

void foo() { bar++; }
int bar;

需要明確的是,我確實知道在第二種情況下foo缺少bar的前向聲明,因此無法編譯。 但是,我不明白為什么第一個不會因為相同的原因而失敗。

對於結構,成員變量的范圍在結構內可用。 因此,如果您在結構中定義函數,則該變量將在函數中可用。

但是,第二種情況並非如此。

暫無
暫無

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

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