我想调用以下内容:
Event& event = events.top(); //This line throws an error because event isn't const
events.pop();
event.process(); //But event can't be const because this function is intentionally not const
events
是优先级队列,process
将修改对象。但是,events.top()
会返回const &
。我相信复制构造函数不存在,因为Event
是一个抽象类,包含纯虚函数。
因此,我在这里只看到两个选项:
const
。我真的不喜欢这两种选择。 是否有更好的方法来弹出,然后修改此优先级队列中的顶级抽象元素?
作为旁注,process()
不会更改基本Event类中包含的任何内容,只有其子类需要该功能。