我得到一个[链接器错误]未定义的引用'WinMain @ 16',我无法解决问题。我正在使用Dev-C ++ - 在我的项目设置中选择“Win32 Console”,因为我希望它成为控制台应用程序。
示例标题(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;
}
我可以通过删除main()前面的Test::
来修复错误,但我希望它引用我的头文件。如果它没有引用我的头文件,那么我的所有变量都会变成未声明的...除非我将它们放入程序本身。
请注意,代码只是我正在做的事情的一个例子..如果它是愚蠢的显而易见再次对不起。 : - (
答案 0 :(得分:2)
答案在评论中提供,但这里是gist ::
#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;
}
答案 1 :(得分: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');
}
然后在最后调用函数??