0

保守されていない古いソフトウェアを最新のものにしていますが、十分に説明できていない独特のパターンに気付きました。

問題のコードは C++ で書かれています。通常、データ メンバーを見ると、クラス宣言内に public または private メンバーとして存在します。私が現在取り組んでいるコードでは、ほぼすべてのクラスが次のように追加の構造体内にデータ メンバーを格納します。

struct MyClassData {
    int foo;
    int bar;
};

class MyClass {
    MyClassData classData;

public:
    void doFoo();
    void doBar();
    void doBaz();
};

残念ながら、このコードの元の管理者には連絡が取れません。ただし、すべてのクラス (約 100 のクラスがあります) はすべてこれを行います。MyClassData 構造体はクラス宣言の先頭以外では使用されないため、理由がわかりません。

誰かが C++ クラスをこのようにレイアウトすることを選択する特定の理由はありますか? 構造体をデータメンバーとして使用したい理由があることは理解していますが、理解できないのは、すべてのデータメンバーをこのような単一の構造体に詰め込み、その構造体で他に何もしない理由です。 . メソッド内で何にアクセスしているのか、どのようにアクセスしているのか(すべてが最初にclassDataを通過する必要があるため)のあいまいさを取り除くかもしれないと思いますが、それ以上はわかりません. これには、まだ解明されていない技術的な理由があるのではないかと考えています。

4

1 に答える 1