私は、サイジングに関して多くの共通の動作を持つ一連のコントロールを開発しようとしています。これは多重継承が必要な例だと思います (反対のアドバイスは喜んで受け入れますが)。私がやりたいことは、基本的にミックスインパターンです
class Sizable {
...
public:
ResizeMe();
ResetText();
...
};
class sizeButton : public Sizable, public TButton {
...
};
class sizeEdit : public Sizable, public TEdit {
...
};
などなど…
私は Sizable クラスにかなりの量のサイジングコードを書き、それをテストしましたが、それは素晴らしいことでしたが、今では構造の残りの部分を設定しました (そうです、最初にクラスのスケルトンを書くべきだったでしょう)。悲しいことにそれを発見しました:
[BCC32 Error] szButton.h(15): E2278 Multiple base classes not supported for VCL classes
メンバー関数である必要のないすべての関数 (文字列の長さの測定など) を取り出しましたが、これができない関数がまだたくさんあります。
大量のコードを複製する必要がないように、設計に関するアドバイスはありますか?