在类中使用map并声明其声明的分隔不会更改任何值并始终返回null:
//config.hpp
class Config
{
public:
std::map<char*, char*>config_map;
Config();
};
//config.cpp
#include "config.hpp"
Config::Config()
{
config_map["key1"] = "value1";
config_map["key2"] = "value2";
}
//main.cpp
#include "config.hpp"
#include <stdio.h>
using namespace std;
int main()
{
Config conf;
printf("%s - %s", conf.config_map["key1"], conf.config_map["key2"]);
return 0;
}
输出将是“(null) - (null)”
但是如果声明在类的下面,在同一个头文件中,这个工作正常。为什么呢?