为什么会出错?
- Config.h
class Config: {
public:
void read();
std::string operator[](std::string key);
....
};
- app.cpp
Config *config;
config->read();
std::string a=config["sysname"]; // this line error
答案 0 :(得分:5)
config
是一个指针,所以在语法上有效的方法是调用它operator[]
(*config)["sysname"]
或
config->operator[]("sysname")
混淆错误消息的原因是在指针上调用operator[]
在语法上是正确的,但参数是一个整数类型:
int* p;
p[42];
请注意,代码config
中没有指向有效的Config
对象。