这是我的班级定义:
#include <iostream>
using namespace std;
class Math
{
private:
static int result;
public:
static int add( int a , int b)
{
result = a + b ;
return result;
};
};
这是主要的:
#include <iostream>
#include "Amin.cpp"
using namespace std;
int main()
{
Math::add(2,3);
}
我在visual studio中遇到了这些错误:
错误LNK2001:未解析的外部符号“private:static int Math :: result” 错误LNK1120:1个未解析的外部
最好的问候
答案 0 :(得分:12)
添加
int Math::result;
在cpp
文件中。
Math::result
在static
的定义中被声明为Math
数据变量,应该在某处定义。这可以是包含cpp
的{{1}}文件或链接器可以找到的任何其他文件。您不需要也不应该在定义中重复关键字main()
。
顺便说一句,你应该避免头文件中的static
(或任何其他命名空间)。
答案 1 :(得分:2)
你的Math
课程中有一个静态变量。您需要为它提供定义。为此,您可以添加:
int Math::result;
到您的.cpp文件