首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >运算符[]数组下标的错误无效类型'Config*[const char [8]]‘

运算符[]数组下标的错误无效类型'Config*[const char [8]]‘
EN

Stack Overflow用户
提问于 2014-05-04 14:32:57
回答 1查看 636关注 0票数 0

怎么搞错了?

-配置h

代码语言:javascript
运行
复制
class Config: {
    public:
        void read();
        std::string operator[](std::string key);
        ....
};

-- app.cpp

代码语言:javascript
运行
复制
Config *config;
config->read();
std::string a=config["sysname"]; // this line error
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-04 14:34:32

config是一个指针,所以在语法上调用它的operator[]的方法应该是

代码语言:javascript
运行
复制
(*config)["sysname"]

代码语言:javascript
运行
复制
config->operator[]("sysname")

造成混淆错误消息的原因是,对指针调用operator[]在语法上是正确的,但是参数是一个整体类型:

代码语言:javascript
运行
复制
int* p;
p[42];

注意,在您的代码中,config没有指向有效的Config对象。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23457437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档