【发布时间】:2014-06-26 20:48:56
【问题描述】:
我想知道是否可以在类中定义main(),例如:
struct runtime_entry_point
{
friend int main()
{
}
};
我已经测试过了,但它不起作用(几乎在 GCC 4.8.2 中):
g++ -o dist/Release/GNU-Linux-x86/turbo build/Release/GNU-Linux-x86/main.o /usr/lib/gcc/x86_64-unknown-linux-gnu/4.8.2/../../../../lib/crt1.o: 在函数 `_start': collect2: error: ld exited with status 1
在我看来,这听起来像是没有定义 main() 错误。
后来,我用经典的方式写了main:
struct runtime_entry_point
{
friend int main()
{
}
};
int main(){}
现在编译失败了,因为int main() 已经在结构runtime_entry_point 中定义了! 这里发生了什么?
【问题讨论】:
-
无论你在做什么:不要这样做。
-
@MilesRout 我只是出于好奇。但是如果你不想知道上下文,我正在做模板元编程,我正在寻找一种方法来自动生成
main(),这在 tmp 元程序中通常什么都不做。 -
所有人注意:我不是问在结构中定义
main()是否是一个好习惯,我问的是上述情况的原因(main()不是在结构中定义与之前的定义) -
有办法,移民Java。
-
您可以找到here 昨天关于模板化
main的讨论,这使得它成为isocpp 选择的最近问题。如果您通读 Jefffrey 的答案的 cmets,则会对与 main 相关的 c++ 内在函数进行彻底解释。但我想你已经知道这篇文章了