私は、より高水準のファイルクラスで使用される簡単で低レベルのコンテナクラスを持っています。基本的に、ファイルクラスはコンテナを使用して、最終バージョンを実際のファイルに保存する前にローカルに変更を保存します。したがって、いくつかのメソッドは、コンテナクラスからファイルクラスに直接移ります。 (たとえば、Resize()
)メンバーからメソッドをコピーする
私は、ファイルクラスのメソッドを定義して、コンテナクラスのバリアントを呼び出すようにしています。例:
void FileClass::Foo()
{
ContainerMember.Foo();
}
これは厄介なものになります。これを行うより良い方法はありますか?これは非常に迷惑であるよう
class MyContainer
{
// ...
public:
void Foo()
{
// This function directly handles the object's
// member variables.
}
}
class MyClass
{
MyContainer Member;
public:
void Foo()
{
Member.Foo();
// This seems to be pointless re-implementation, and it's
// inconvenient to keep MyContainer's methods and MyClass's
// wrappers for those methods synchronized.
}
}
私はここに組成を見て、継承していません。何か不足していますか? –
@Dougコンテナクラスから継承する方法があるかどうか、または私の例では、「MyContainer」がいくつかの方法であるかどうかを確認しています。 (もしあればもっと良い解決法があります)私は質問をより明確に編集します。 – Maxpm
その場合は、MyContainerを、必要なメソッド(およびそれから継承する)と、残りのMyContainerメソッドを別のクラスに持つクラスに分割する必要があります。 – dlev