我有一个简单的,低级别的容器类,由更高级别的文件类使用。基本上,文件类使用容器在将最终版本保存到实际文件之前在本地存储修改。因此,一些方法直接从容器类传递到文件类。 (例如,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.
}
}
我在这里看到构图,而不是继承。我错过了什么吗? – 2011-05-09 23:22:57
@Doug我只是问几个方法,是否有从容器类继承的方法,或者在我的例子中是'MyContainer'。 (或者更好的解决方案,如果有的话)。我将编辑问题更清楚。 – Maxpm 2011-05-09 23:24:26
在这种情况下,听起来好像你应该将MyContainer分成一个拥有你想要的方法的类(然后继承它)和MyContainer的其他方法的其他类。 – dlev 2011-05-09 23:25:44