首页 > 解决方案 > 使用内联静态类函数时出现未定义的类错误

问题描述

我有一个名为 CallMe 的类,它有一个访问静态变量的静态方法......

// callme.h

class CallMe{

    static std::map<std::string,int> myMap;

public:

    // ... Other functions for adding removing etc...

    static int Get(std::string name)
    {
        int value = 0;
        // finding value ...
        return value;
    }
};

//  callme.cpp
std::map<std::string,int> CallMe::myMap

我正在使用位于头文件 user.h 中的其他类的 CallMe 类

// 用户.h

#include "callme.h"

class User{

public:

    int Call(std::string name)
    {
        return CallMe::Get(name);
    }
}; 

当我编译应用程序时,所有代码都在头文件中(CallMe::myMap 声明除外)。我得到“未定义的 CallMe”。

发生此错误是因为我在头文件中定义了类还是使用静态变量的原因...

标签: c++staticinline

解决方案


推荐阅读