[英]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.