我有一个继承层次结构,我想让这个层次结构中的每个类都有一组属性,这些属性是该类特有的,并且在程序运行期间不会改变。例如:
class Base
{
public:
const std::string getName() const;
bool getAttribute1() const;
int getAttribute2() const;
};
现在我希望这些函数始终返回相同的结果。此外,当另一个类继承Base
这个类时,应该有它自己的一组属性,并且这个派生类的任何实例都应该有相同的属性。每个类的名称也应该是唯一的。
我想知道一种方法让它尽可能透明和优雅。到目前为止,我已经考虑了两个可以使用的想法:
- 做一些锁系统。
那就是为这些属性提供设置器,但是当它们被多次调用时,它们会引发运行时异常。
- 使 getter 成为纯虚拟的。
在这种情况下,函数的结果不会存储在对象本身内。这将模糊地表明结果取决于动态类型。
这两个想法听起来都非常糟糕,所以我需要你的帮助。
我是 C++ 新手,但我知道有很多习语和模式可以解决像这样的一般问题。你知道任何?