基底クラスのメンバ変数を共有したい
Posted: 2010年10月05日(火) 19:47
ハッカーになったようでおめでとう俺
ハッカーになったようですが、質問はあいかわらず低レベルです
このままいけば質問攻めの 国会議員のれんほ・・・いやなんでもないです
下のように基底クラス CData があり それを継承し、それぞれのインスタンスを生成してます
このとき基底クラスの CData::m_iValue を 派生クラス両方で共有して扱いたいのですが
どういった方法があるでしょうか?
現在、CStepA のインスタンスから CStepB のインスタンスへと CData::m_iValue の値を引き継ぎたい
状態で、派生せずにCDataのインスタンスを生成するか、static メンバ変数にするか、そのほかか迷ってます
どちらがいいでしょうか?
ハッカーになったようですが、質問はあいかわらず低レベルです
このままいけば質問攻めの 国会議員のれんほ・・・いやなんでもないです
下のように基底クラス CData があり それを継承し、それぞれのインスタンスを生成してます
このとき基底クラスの CData::m_iValue を 派生クラス両方で共有して扱いたいのですが
どういった方法があるでしょうか?
現在、CStepA のインスタンスから CStepB のインスタンスへと CData::m_iValue の値を引き継ぎたい
状態で、派生せずにCDataのインスタンスを生成するか、static メンバ変数にするか、そのほかか迷ってます
どちらがいいでしょうか?
#include <iostream> using namespace std; class CData { protected: int m_iValue; public: virtual void Init(); virtual void Print(); }; void CData::Init(){} void CData::Print(){ cout << "miss" << endl; } class CStepA : public CData { public: void Init(); void Print(); }; void CStepA::Init(){ m_iValue = 10; } void CStepA::Print(){ cout << "m_iValue: " << m_iValue << endl; } class CStepB : public CData { public: void Init(); void Print(); }; void CStepB::Init(){ m_iValue = 100; } void CStepB::Print(){ cout << "m_iValue: " << m_iValue << endl; } int main() { CData *stepA = new CStepA; CData *stepB = new CStepB; stepA->Init(); stepB->Init(); // stepA->m_iValue と stepB->m_iValue の値を共有したい stepA->Print(); stepB->Print(); delete stepA; delete stepB; return 0; }