所以我正在學習課程,我偶然發現了一些我覺得很尷尬的東西。在使用之前,類函數/變量是否必須聲明?
class Nebla
{
public:
int test()
{
printout();
return x;
}
void printout()
{
printout2();
}
private:
int x,y;
void printout2()
{
cout<<"Testing my class";
}
};
我發現,在I類可以使用的功能之前,我宣佈他們(原型他們)
你可以看到我decleration之前使用
printout()
,printout2()
。
而且我還可以使用變量聲明它們
之前,你可以看到我做
return x
;在聲明x之前。
爲什麼我可以在聲明之前在類中使用函數和變量,但如果我這樣做,我會得到一個錯誤?
感謝
我還沒有看到這個問題的具體答案,但我猜想這是由於編譯器在課堂上做了兩遍。 – chris
@chris你是什麼意思,編譯器在類上做兩次傳遞 –
[This comment](http://stackoverflow.com/questions/2632601/why-are-forward-declarations-necessary#comment2646159_2632601)似乎加強了那個猜測。這個問題稍微處理了這個概念。 – chris