我想写下一组类,其中有:
- 一个纯虚拟类,它包装了任何类型的对象及其相关的 getter。
- 为我需要的每种对象提供一个或多个类,扩展虚拟对象并覆盖 getter 以使其专业化。
包装器的模板类解决方案似乎适合这种情况,但我必须在两种不同的情况下使用它:
- 第一个不知道包装器的实现。
Wrapper<AnyObj> var;
在这种情况下,我应该声明 aAnyObj
代表任何类名(如?
在 Java 中)。据我所知,你不能在 C++ 中做到这一点。 - 第二个仅限于特定的包装器实现。在这种情况下,我需要 getter 返回具有确切类型的包装对象(而不是向下转换)。
如果我是对的,我不能使用模板类,而且,包装器不会有protected: T* wrappedObject
成员。
我不知道我是否被困在 Java 方法中,从一开始就错误地思考,或者错过了什么。
任何建议表示赞赏。