所以我正在学习课程,我偶然发现了一些我觉得很尴尬的东西。在使用之前,类函数/变量是否必须声明?
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