当我创建一个函数时,如果我将原型(prototype)放在 main 之上,我可以将它的代码放在 main 之后。例如,
int myFunction(int a)
{
return(a);
}
会有原型(prototype)..
int myFunction(int a);
高于主要。
但是,我无法将它用于类定义。
如果我把...
class myClass
{
…
};
在主体下方,
如果我输入会出错
class myClass;
高于主要。错误发生在类在 main 中使用的地方,错误是“未知的类型名称”。这是 Xcode 的一部分的 c++ 编译器。
如果类定义在main下面,我应该在main上面输入什么样的原型(prototype)?
最佳答案
当您调用函数且定义不可用时,编译器无需知道内容即可继续评估其余代码(例如:调用站点的堆栈使用情况)。它只需要知道函数的签名即可确保将正确的参数传递给函数。编译器完成后,链接器将挂接函数调用的实际地址。
然而,当您使用一个类时,它必须知道它的细节——而不仅仅是它的存在——因为它需要确保堆栈上的正确布局、构造函数需要哪些参数等。
类函数的详细信息当然就像常规函数一样 - 它只需要使用签名 - 它们可以在以后定义。
关于c++ - 放置类定义和原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29285103/