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

unresolved external symbol "private: static int Math::result"

本文关键字:static int Math result private 外部 符号      更新时间:2023-10-16

这是我的类定义:

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

此致敬意

只需添加

int Math::result;

在您的cpp文件中。

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

顺便说一下,您应该避免在头文件中using namespace std;(或任何其他命名空间)。

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

int Math::result;

到您的.cpp文件