在此處構建我的問題:C++ cannot establish handle reference to 'parent' object -- circular includes or undefined type errors我想創建一個類(稱爲Node),該類具有兩個泛型類型成員,一個指向待確定類型類型父對象的泛型指針以及一組通用指針的向量,指向一組待定類型的子對象的元素。在雙向樹結構中存在的對象將從Node繼承,並且可以在數據可用時填充其父成員和子成員。以下是我迄今爲止爲此對Node.h:在類中使用泛型類成員
#include <vector>
#ifndef NODE_H_
#define NODE_H_
template<typename T> class parent{};
template<typename T2> class child{};
class Node{
private:
parent<T>* parent_ptr;
vector<child<T2>>* children_ptr;
public:
//some accessor methods will go here to get and set the parent and children
};
#endif /*NODE_H_*/
顯然這不是要在C++模板,因爲我得到錯誤C2065以正確的方式「‘T’是一個未聲明的標識符」和C4430「缺少類型說明符 - int假定」錯誤。我在這裏找到了一些關於創建模板類和函數的有用文檔:http://www.cprogramming.com/tutorial/templates.html,但是這個教程和我能找到的任何其他文檔都沒有涉及使用模板在非模板類中聲明泛型類成員;我相當肯定這個(或類似的東西)是我需要爲我的用例做的事情,那麼在標準C++類中聲明和使用通用成員變量的正確方法是什麼?
你似乎完全不關心C++。我建議在處理模板之前先掌握基本語言。在這裏,你可能應該首先寫一些特定的類型,然後使其通用。 – pmr 2012-08-07 16:46:45