这个例子会产生错误
对象的类型限定符与成员函数不兼容。
但我不知道为什么。
A.h
class A {
public:
void f2(XXX* ..) const;
protected:
const vector<XYZ> f(){return m;}
vector<XYZ> m;
}
A.cpp
void A::f2(XXX* ..) const
{
const vector<XYZ>& P= this->f(); // Here I get this error as well
}
谁能给我解释一下我做错了什么吗,谢谢。
你不能从一个对象中调用一个非const函数。const
功能。这意味着 f
需要 const
也是合格的。
const std::vector<XYZ> f() const { return m; }
否则,你不能把它从 f2
.