未解析的外部符号“private:static int Math :: result”

时间:2014-02-26 20:34:12

标签: c++ static

这是我的班级定义:

#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个未解析的外部

最好的问候

2 个答案:

答案 0 :(得分:12)

添加

int Math::result;

cpp文件中。

Math::resultstatic的定义中被声明为Math数据变量,应该在某处定义。这可以是包含cpp的{​​{1}}文件或链接器可以找到的任何其他文件。您不需要也不应该在定义中重复关键字main()

顺便说一句,你应该避免头文件中的static(或任何其他命名空间)。

答案 1 :(得分:2)

你的Math课程中有一个静态变量。您需要为它提供定义。为此,您可以添加:

int Math::result;

到您的.cpp文件