假设我们有 2 个类 A 和 B。它们都是超类 C 的子类。现在让我们假设 C 定义了一个方法 areYouA(),这是一个询问对象是否是 A 类的对象的方法。
因此,在 c++ 中,可能的代码是:
C object1 = A()
C object2 = B()
if (object1.areYouA()==true){//crazy code here regarding if it's an A object}
if (object2.areYouA()==false){//crazy code here regarding if it's a B object}
从 OO POV 向 B 和 C 类添加方法以询问它们各自的对象是否属于 A 类是否正确???如果它不正确,那么还有什么方法可以解决这个问题????我的目标很明显,我需要 2 个 A 类和 B 类,在某些时候,我有部分二进制数据可能属于 A 类或 B 类,而且一个对象最初也属于 A 类,因为它得到完整的,它的结构需要改变,它的一些行为也需要改变,因此成为 B 类的对象。所以我的方法是将抽象类视为父类,最初声明一个 C 对象但存储一个 A 对象,然后在 B 对象更改时存储它。还有另一种方法吗,比如模式???
附加信息:
我想我对此不是很清楚。假设我想将来自 A 对象的信息存储在 file1 中,并将来自 B 对象的信息存储在 file2 中。如果将其母类用作接口,那么我如何判断它是存储在相应文件中的 A 对象还是 B 对象?我应该为每个对象添加一个属性,因为它们也属于它们的文件名吗???这意味着如果我需要更改文件名,那么每个对象也需要更改。