如何运行这个简单的C ++程序?

时间:2016-06-29 12:50:43

标签: c++

我是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提供更多信息,如果需要,请告诉我。

4 个答案:

答案 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() {},因为这是您的入口点,然后在您的班级中调用您的成员函数。它需要在类或结构之外。