C ++では、Base
のプライベート基本クラスであるDerived
がBase
仮想関数を持たないクラスがある場合、代わりに継承を持つことをクラス内のカプセル化に置き換える方がクリーンEncapsulate
ですか?この場合の継承の唯一の利点は、を介してではなく、派生クラスで直接基本クラスにアクセスできることだと思いますmemberVariable
。どちらか一方の方法がより良いと考えられていますか、それとも個人的なスタイルの質問ですか?
class Base {
public:
void privateWork();
// No virtual member functions here.
};
class Derived : Base {
public:
void doSomething() {
privateWork();
}
};
class Encapsulate {
Base memberVariable;
public:
void doSomething() {
memberVariable.privateWork()
}
};