Ich habe eine einfache, einfache Containerklasse, die von einer anspruchsvolleren Dateiklasse verwendet wird. Grundsätzlich verwendet die Dateiklasse den Container, um Änderungen lokal zu speichern, bevor eine endgültige Version in einer tatsächlichen Datei gespeichert wird. Einige der Methoden werden daher direkt von der Containerklasse auf die Dateiklasse übertragen. (Zum Beispiel, Resize()
.)
Ich habe gerade die Methoden in der Dateiklasse definiert, um ihre Varianten der Containerklasse aufzurufen. Zum Beispiel:
void FileClass::Foo()
{
ContainerMember.Foo();
}
Dies wird jedoch zunehmend zu einem Ärgernis. Gibt es eine bessere Möglichkeit, dies zu tun?
Hier ist ein vereinfachtes Beispiel:
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.
}
}