Copiando Métodos do Membro
Eu tenho uma classe de contêiner simples e de baixo nível usada por uma classe de arquivo de mais alto nível. Basicamente, a classe de arquivo usa o contêiner para armazenar modificações localmente antes de salvar uma versão final em um arquivo real. Alguns dos métodos, portanto, são transferidos diretamente da classe de contêiner para a classe de arquivo. (Por exemplo,Resize()
.)
Acabei de definir os métodos na classe de arquivo para chamar suas variantes de classe de contêiner. Por exemplo
void FileClass::Foo()
{
ContainerMember.Foo();
}
Isso está, no entanto, se tornando um incômodo. Existe uma maneira melhor de fazer isso
Aqui está um exemplo simplificado:
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.
}
}