我需要为定义如下的接口实现模拟:
class Foo
{
public:
void sendEvent(int id) const = 0;
}
我的模拟类需要保存所有发送给类的事件 ID。这就是我打算这样做的方式。
class FooMock : Foo
{
private:
m_vector std::vector<int>;
public:
void sendEvent(int id) const {m_vector.push_back(id);}
}
但显然编译器拒绝这种构造。是否有任何解决方案(假设界面无法更改)?
我意识到我可以为此使用两个类。但是有没有办法让编译器关闭并允许我这样做,类似于 const_cast?