可能重复:
How to resolve “LINK : fatal error LNK1561: entry point must be defined”?
我有类A和B这样,在链接时出现错误:错误LNK1561:必须定义入口点。我做错了什么?
#include <string>
#include <cstdlib>
class A
{
public:
A(){}
~A(){}
string getName()
{ return name; }
void setName(string name)
{this->name = name;}
void write()
{
cout << "Value:" << getName() << endl;
}
protected:
string name;
};
#include <string>
#include "A.h"
class B : public A
{
public:
B()
{
setName("B");
}
~B(){}
};
#include "A.h"
#include "B.h"
#include <cstdlib>
int main()
{
B abc = B();
abc.write();
system("PAUSE");
return 0;
}
我收到以下错误:
错误C2039:'name':不是'A'的成员
错误C2061:语法错误:标识符'字符串'
错误C2065:'cout':未声明的标识符
错误C2065:'endl':未声明的标识符
错误C2065:'name':未声明的标识符
错误C2146:语法错误:缺少';'在标识符'getName'之前
错误C2146:语法错误:缺少';'在标识符'name'之前
错误C2660:'A :: setName':函数不带1个参数
错误C4430:缺少类型说明符 - 假定为int。注意:C ++不支持default-int
答案 0 :(得分:2)
如果就是这样,那么就没有定义int main()
,所以它们不能从中调用代码,也没有地方可以启动。
答案 1 :(得分:2)
您需要声明应用程序的入口点,通常是:
int main()
{
// code to declare an A and B object
}
答案 2 :(得分:2)
好吧,你没有向我们展示命令,但是如果你要链接来创建一个可执行文件(而不是一个dll),你必须定义一个函数main
;这是运行时启动可执行文件时调用的内容。
答案 3 :(得分:0)
你没有写main()
函数。
答案 4 :(得分:0)
您似乎没有main
方法,这是您的计划的切入点。