小编Eri*_*ker的帖子

有没有办法摆脱虚拟成员函数的常量

我需要为一个定义类似的接口实现一个模拟:

class Foo
{
public:
  void sendEvent(int id) const = 0;
}
Run Code Online (Sandbox Code Playgroud)

我的mock类需要保存发送给类的所有事件id.这就是我打算这样做的方式.

class FooMock : Foo
{
private: 
  m_vector std::vector<int>;
public:
  void sendEvent(int id) const {m_vector.push_back(id);}

}
Run Code Online (Sandbox Code Playgroud)

但显然编译器拒绝这种结构.有没有解决方案(假设界面无法更改)?

我意识到我可以使用两个类.但是有没有办法关闭编译器并允许我这样,类似于const_cast?

c++ virtual-functions const-correctness

1
推荐指数
1
解决办法
187
查看次数

标签 统计

c++ ×1

const-correctness ×1

virtual-functions ×1