static main来自静态类?

jma*_*erx -1 c++

我想弄清楚为什么这不起作用.我想在Java中做,其中main是类中的静态函数,但这会产生未解析的外部符号错误:

 static class MainClass
{
     public:
    static int _tmain(int argc, char* argv[])
    {
        return 0;
    }
};
Run Code Online (Sandbox Code Playgroud)

为什么这不起作用?

谢谢

Mar*_*ork 10

C++不能像那样工作.
你需要main作为一个函数:

int main(int argc,char* argv[])
{
    //STUFF
}
Run Code Online (Sandbox Code Playgroud)


Joh*_*itb 6

因为_tmain在二进制文件中包含了类名MainClass,因此多个类可以_tmain在其中具有函数而不会发生冲突.它没有得到与之相同的错位名称::_tmain.

我记得在早期版本的MSVC中,它接受了以下内容而没有链接器错误,该错误由于我的代码库中的宏扩展而意外结束

namespace bar {
  int main() { }
}
Run Code Online (Sandbox Code Playgroud)

它显然main特别对待这个名字,并没有破坏它或者像它一样破坏它::main.但是这样的事情并不符合标准.就像在类的情况一样,这样的函数与main函数完全无关.