便乗してちょっと質問です。

class CBase
{
public:
int m_base;
};
class CDerived : public CBase
{
public:
int m_derived;
virtual void v_func() {}
};

// グローバルデータ
CBase g_data00;
CDerived g_data01;

// グローバルデータへのポインタを取得する
void getDataPointer(CBase** pp_data, int type)
{
switch (type) {
case 0: *pp_data = &g_data00; break;
case 1: *pp_data = &g_data01; break;
}
}

(続く)