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 オブジェクトかをどのように判断できますか?? 各オブジェクトに属するファイル名の属性も追加する必要がありますか??? つまり、ファイルの名前を変更する必要がある場合は、すべてのオブジェクトも変更する必要があります。