0

我收到一个 [Linker Error] 未定义的对“WinMain@16”的引用,我无法解决这个问题。我正在使用 Dev-C++ - 在我的项目设置中选择了“Win32 控制台”,因为我希望它是一个控制台应用程序。

示例头文件(Test.h):

#ifndef TEST_H
#define TEST_H
#include<string>
using namespace std;
class Test {
  private:
    int testing;
  public:
    int main();
};
#endif

示例 .cpp 文件

#include<iostream>
#include "Test.h"
using namespace std;
int Test::main(){ 
   /*         EXAMPLE       */
   cout << "Enter Test" <<endl;
   cin >> testing;
   cout << "----------------------------"<<endl;
   system("pause");
   return 0;   
}

Test::我可以通过删除main() 前面的来修复错误,但我希望它引用我的头文件。如果它没有引用我的头文件,我的所有变量都将变为未声明的......除非我将它们放入程序本身。

请注意,代码只是我正在做的一个例子。如果它很明显,再次抱歉。:-(

4

2 回答 2

2

评论本身提供了答案,但这里是要点::

#ifndef TEST_H
#define TEST_H
#include<string>
using namespace std;
class Test {
  private:
    int testing;
  public:
    int main();
};

int Test::main(){ 
   /*         EXAMPLE       */
   cout << "Enter Test" <<endl;
   cin >> testing;
   cout << "----------------------------"<<endl;
   system("pause");
   return 0;   
}
#endif

在 .cpp 文件中::

#include<iostream>
#include "Test.h"
using namespace std;
int main(){ 
   /*         EXAMPLE       */
   Test *testObject = new Test();
   testObject->main();
   delete(testObject);
   system("pause");
   return 0;   
}
于 2013-04-24T11:26:26.373 回答
0

system("PAUSE")哦,当有更好的方法时,你为什么要使用!?(你可以在这里阅读为什么system()是邪恶的:http ://www.cplusplus.com/forum/articles/11153/ )为什么不使用这样的东西:

void PressEnterToContinue()
{
    std::cout << "Press ENTER to continue...\n";
    std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
}

然后在最后调用函数??

于 2014-02-22T01:08:37.250 回答