あるクラスをポインタで受け取り、インスタンスを作った場合
同じクラスのインスタンスを作成した際、クラス内の特定の変数や関数を継承することは可能でしょうか?
わかりにくいと思うので実際にコードで説明させていただきます
まずBase.hがあるとします
C++
1Base.h 2 3class Base:{ 4int _int; 5virtual void hoge(){}; 6}
次に、このBaseを継承したSean_1とゆうヘッダを作ります。
C++
1Sean_1.h 2#include "Base.h" 3class Sean_1 :public Base{ 4void hoge(){_int++;}; 5}
同様にSean_2を作成します。
C++
1Sean_2.h 2#include "Base.h" 3class Sean_2 :public Base{ 4void hoge(){_int++;}; 5}
これをApp.hから読み込みます
C++
1App.h 2 3#include "Base.h" 4#include "Sean_1" 5#include "Sean_2" 6 7class App:{ 8void main(){};//スタート処理 9vector<Base*> base;//ここでポインタ 10}
C++
1App.cpp 2 3void App::main(){ 4Base * s1=new Sean_1(); 5Base * s2=new Sean_2(); 6 7base.push_back(s1); 8base.push_back(s2); 9 10base[0].hoge(); 11base[0].hoge(); 12base[1].hoge();//ここで_intの値を3にしたい。 13 14} 15
このApp.cpp内で、baseにs1,s2を入れましたが、これらのs1,s2を呼び込むときBase.hの内容も読み込まれますが、このときにBase内の値を継承することは可能でしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/08/07 04:04