こんばんは。
C++のテンプレートでの質問です。
template<class T,class U>
class folderItem{
public:
folderItem(T parent = NULL)
{
m_parent = parent;
}
void InsertChild(U item);
private:
T m_parent;
std::vector<U> m_children;
}
template<class T,class U>
class fileItem : public folderItem<T,U>{
public:
fileItem(T parent) : folderItem<T,U>(parent)
{
}
}
上記のような、親子関係を持つテンプレートクラスを作りたいのですが、インスタンスの生成時に困っています。
(理想)
folderItem<folderItem,fileItem> item;
folderItem<folderItem,folderItem> item;
(現実)
fileItem< folderItem< folderItem<.........,fileItem<folderItem<folderItem ........
のようになってしまい、最初の型定義でつまずいてしまいます。
いままでは、テンプレートを使わずに親も子も基盤クラスで親子関係を作り、必要なときにキャストしていたのですがキャストばかりになってしまい読みにくくなってきましたのでテンプレート化して読みやすくしたくなった所存です。
どなたか助けて下さい。
よろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/06/07 02:23
2016/06/07 02:58