ついに親戚がプレゼントを配りはじめたようです。
CPropertySheetとCPropertyPageの関係を説明できるまで、まだまだ先が長そうな気配・・
#そして、色々と突っ込まれる予感・・
#include "stdafx.h"
class Oya {
public:
Oya(){};
~Oya(){};
virtual void Speak();
virtual void Present();
};
void Oya::Speak()
{
std::string data( "Oya");
std::cout << data.c_str() << std::endl;
}
void Oya::Present()
{
std::string data( "Save the Money!");
std::cout << data.c_str() << std::endl;
}
class Ko:public Oya {
public:
Ko(){};
~Ko(){};
void Speak();
void Present();
};
void Ko::Speak()
{
std::string data( "Ko");
std::cout << data.c_str() << std::endl;
}
void Ko::Present()
{
std::string data( "I want to buy the \"Wii!!\"");
std::cout << data.c_str() << std::endl;
}
class ShinSeki :public Oya{
protected:
std::vector<Oya*> m_Oyas;
public:
ShinSeki() {};
~ShinSeki(){};
//
void AddPresentKo(Oya* pOya) {
m_Oyas.push_back( pOya);
}
//
void Present()
{
std::vector<Oya*>::iterator iteOyako;
iteOyako = m_Oyas.begin();
while( iteOyako != m_Oyas.end() ) {
Oya* pItazura = *iteOyako;
pItazura->Present();
iteOyako++;
}
}
void Speak();
//
friend class Oya;
friend class Ko;
};
void ShinSeki::Speak()
{
Oya::Speak();
std::string data( "Shinseki");
std::cout << data.c_str() << std::endl;
}
int _tmain(int argc, _TCHAR* argv[])
{
Oya* pData[10];
ShinSeki Shinzoku;
int nIndex = 0, nCnt;
pData[nIndex++] = new Oya();
pData[nIndex++] = new Ko();
//pData[nIndex++] = new ShinSeki();
pData[nIndex++] = &Shinzoku;
for( nCnt = 0; nCnt < nIndex; nCnt++) {
pData[nCnt]->Speak();
}
Shinzoku.AddPresentKo( new Oya() );
Shinzoku.AddPresentKo( (Oya*)pData[0] );
Shinzoku.AddPresentKo( (Oya*)pData[1] );
Shinzoku.AddPresentKo( (Oya*)new Ko() );
Shinzoku.Present();
//
for( nCnt = 0; nCnt < nIndex -1; nCnt++) {
delete pData[nCnt];
}
return 0;
}