在开发游戏的过程中,我设计了一个在正常操作中具有const成员变量的类,如下所示:
class Foo {
/* ... */
protected:
const boost::unordered_map<short, short> m_map;
};
Run Code Online (Sandbox Code Playgroud)
但是,在随附的游戏编辑器中,我想重用Foo类,但是提供了一种编辑这个const成员的方法,因为它用于渲染游戏(我想重新使用渲染器进行编辑).因此,我计划对Foo类进行子类化,以便提供更改各种属性的方法,以及序列化数据以保存编辑器数据.我想知道是否有一种优雅的方式来做这个,同时保持成员为const或有更好的设计?
我到目前为止提出的选项是:
从语言的角度来看,接口路径似乎是最干净的,但是为每个涉及的类提供了一个接口(抽象基类),这是一种体面的努力.建议和想法欢迎.(注意:我很难想出一个描述性的标题;建议也欢迎.)
c++ ×1