我有一個簡單的,低級別的容器類,由更高級別的文件類使用。基本上,文件類使用容器在將最終版本保存到實際文件之前在本地存儲修改。因此,一些方法直接從容器類傳遞到文件類。 (例如,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