基底クラスのメンバ変数を共有したい
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;
}