gpt4 book ai didi

c++ - 为什么我得到一个 Expression is not assignable 错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:26:19 25 4
gpt4 key购买 nike

我不明白为什么我从以下代码中收到“表达式不可分配”错误:

class value_t {
public:
int a;
};

class values_t {
public:
std::map<std::string, value_t *> list;

value_t * operator [] (const std::string & key) { return list[key]; }
value_t * get(const std::string & key) { return list[key]; }
};

int main(int argc, const char * argv[]) {
values_t values;

values.list["aaa"] = new value_t(); // OK
values["aaa"] = new value_t(); // ERROR
values.get("aaa") = new value_t(); // ERROR
return 0;
}

我看不出 main 函数的第二行和另一行有什么区别。

如何建议解决方案是更改 value_t * & 中的返回类型

最佳答案

values.list["aaa"] 返回对指针的引用,该指针可以赋值给。

values["aaa"]values.get("aaa") 返回指针本身。

将这两个的返回类型更改为 value_t *& 并保留实现原样。

关于c++ - 为什么我得到一个 Expression is not assignable 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56079738/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com