C++相談室 part49
■ このスレッドは過去ログ倉庫に格納されています
0355デフォルトの名無しさん
2006/05/10(水) 10:11:37template < class T > class CMaterial {
CMaterial* NextMaterial;
public:
T* CreateNext() { return NextMaterial = new T; }
};
class CBlock : public CMaterial<CBlock> {};
/* または */
class CMaterial {
CMaterial* NextMaterial;
protected:
virtual CMaterial* Factory() const { return new CMaterial; }
public:
CMaterial* CreateNext() { return NextMaterial = Factory(); }
};
class CBlock : public CMaterial<CBlock> {
protected:
virtual CMaterial* Factory() const { return new CBlock; }
};
■ このスレッドは過去ログ倉庫に格納されています