一般的に私たちは実装の詳細を基本クラスに隠すためにプライベート継承を使いたいと思っています。これが当てはまる場合は、基本クラスを個人的に継承したいとき、なぜ名前の宣言がありますか?
1)なぜ名前が公開されているのですか?それは言語の完全性のためだけであるか、または実際の使用法もありますか?
2)基本クラスの関数名を宣言しても、派生クラスは同じ名前の別の関数を宣言できます。次のコードを考慮してください。上記のスニペットで
#include "iostream"
using namespace std;
class Base {
public:
int zoo;
Base() {zoo =5;}
int sleep() const {return 3;}
};
class Derived : Base { // Private inheritance
public:
using Base::zoo;
using Base::sleep;
int sleep() const { return 4.0; }
};
int main() {
Derived der;
der.sleep();
cout<<" zoo is : "<<der.zoo<<endl;
cout<<" Sleep is : "<<der.sleep()<<endl;
}
、私たちは名前を公表にもかかわらず、我々はまだ派生クラスで名前を宣言することができ、我々はメンバ変数の基底クラスバージョンにアクセスすることができます。メモリの管理方法
ありがとうございます。
どのようなメモリが管理されていますか? – fghj
また、それは有効なC++ 11コードではないことに注意してください。 – xaxxon
'使用中 'を忘れないでください。 – KyleKnoepfel