У меня есть простой, низкоуровневый контейнерный класс, который используется более высокоуровневым файловым классом. По сути, файловый класс использует контейнер для локального хранения изменений перед сохранением окончательной версии в фактическом файле. Поэтому некоторые методы переносятся непосредственно из класса контейнера в класс файла. (Например, 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.
}
}