【发布时间】:2012-07-23 09:38:59
【问题描述】:
我的班级中有这样的容器:
protected:
std::map<const AAA*, std::set<BBB*> > conn;
以下两个 getter 函数都可以正常工作:
std::map<const AAA*, std::set<BBB*> > & getConnectors() {return connectors;}
std::map<const AAA*, std::set<BBB*> > getConnectors() const {return connectors;}
但是 & 和 const 在一起,Nope.Gives 错误:
std::map<const AAA*, std::set<BBB*> > & getConnectors() const {return connectors;} //error
错误是:
/home.../Multi.hpp:65:108: error: invalid initialization of reference of type ‘std::map<const AAA*, std::set<BBB*> >&’ from expression of type ‘const std::map<const AAA*, std::set<BBB*> >’
make[2]: *** [CMakeFiles/SimMobility.dir/main.cpp.o] Error 1
为什么我会得到这个,请问我该如何解决
谢谢
【问题讨论】:
-
阅读错误信息!在
const方法中,this指针和成员被视为const,您不能返回对const对象的非const引用。