对象的类型限定符与使用向量的成员函数不兼容。

问题描述 投票:0回答:1

这个例子会产生错误

对象的类型限定符与成员函数不兼容。

但我不知道为什么。

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
}

谁能给我解释一下我做错了什么吗,谢谢。

c++ stl
1个回答
1
投票

你不能从一个对象中调用一个非const函数。const 功能。这意味着 f 需要 const 也是合格的。

const std::vector<XYZ> f() const { return m; }

否则,你不能把它从 f2.

© www.soinside.com 2019 - 2024. All rights reserved.