2010-04-24 19 views
6

"hata bir tür Beklenen, 'sınıfadı' var":: Aşağıdaki kodu kullanarak C++

template <typename T> 
class node { 
    [. . .] 
}; 
class b_graph { 
friend istream& operator>> (istream& in, b_graph& ingraph); 
friend ostream& operator<< (ostream& out, b_graph& outgraph); 

public: 

    [...] 
private: 
    vector<node> vertices; //This line 

alıyorum: Belirtilen satırda

error: type/value mismatch at argument 1 in template parameter list for ‘template<class _Tp, class _Alloc> class std::vector’ 
error: expected a type, got 'node' 
error: template argument 2 is invalid 

. Düğüm b_graph'ı kullanmadan önce açıkça tanımlanmıştır - burada ne yaptım?

cevap

24

node bir sınıf değil, bir sınıf şablonu. Sen

vector<node<int> > vertices; 

( int örnek olarak kullanılır; sen aslında gerek türünü kullanmalısınız), bu örneğin vector unsuru türü olarak kullanmak örneğini gerekir

+0

ah! Tamam. Teşekkürler, işe yaradı. – Bay

+2

Teşekkürler - Arama yaparken cevabınızı buldum ve biraz zaman kurtardı. –

İlgili konular