kal*_*kal 1 c++ methods const
#include "iostream" #include "vector" class ABC { }; class VecTest { std::vector<ABC> vec; public: std::vector<ABC> & getVec() const { //Here it errors out return vec; } };
删除const修复它,不是getVec是一个常量方法的情况.那为什么不允许这样做?
Ray*_*yat 10
你应该做的是返回一个const引用.
const std :: vector&getVec()const {return vec; }
这是不允许的,因为你说getVec是一个const方法,这意味着该方法不应该以任何方式改变这个对象.返回非const引用可能允许更改其对象,因此编译器不允许它.
归档时间:
16 年,11 月 前
查看次数:
545 次
最近记录: