我是C ++初学者并试图运行一些初学者代码。我有以下文件,
myTest.h
////////
#ifndef __myTest_h__
#define __myTest_h__
#include <string>
using std::string;
class myTest{
public:
int main(int, char const**);
};
#endif // __myArray_h__
myTest.cpp
//////////
#include<iostream>
#include<string>
#include "myTest.h"
using namespace std;
int myTest::main(int argc, char const *argv[])
{
std::cout<< "Hello World/n";
return 0;
}
当我尝试使用命令g++ myTest.cpp -o myTest.out
从Mac OS中的终端运行时,我在终端中收到以下错误,
Undefined symbols for architecture x86_64:
"_main", referenced from:
implicit entry/start for main executable
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
如何更正代码以开始使用C ++?我可以使用命令-v
提供更多信息,如果需要,请告诉我。
答案 0 :(得分:13)
与Java或C#不同,您不能在类中拥有np.float16
函数,它必须是全局非成员函数。
你可以创建一个非常简单的main
函数,然后调用你的成员函数main
函数:
main
请注意,我需要创建int main(int argc, char* argv[])
{
myTest myTestObject;
return myTestObject.main(argc, argv);
}
类的实例,这是因为myTest
函数未生成myTest::main
。如果您将其设为static
,请
static
那么你的非成员class myTest
{
public:
static int main(int, char *[]);
...
};
功能可能如下所示:
main
答案 1 :(得分:3)
您的入口点main
功能不能在课堂内。它必须是正常的功能。
如果要将逻辑放在类中,请让main
函数分配它的实例,然后调用其中的函数。
答案 2 :(得分:2)
每个C ++程序都需要一个 main()函数,这是C ++启动代码在加载和初始化程序后立即调用的函数。因此,您需要将程序与包含main()函数的.cpp文件链接,
int main(int argc, char const *argv[])
{
}
答案 3 :(得分:1)
您需要一个程序入口点。您必须添加int main() {}
,因为这是您的入口点,然后在您的班级中调用您的成员函数。它需要在类或结构之外。