2010-04-24 34 views
6

Sử dụng đoạn mã sau:"lỗi: Dự kiến ​​một loại, có 'classname" trong 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 

tôi nhận được:

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 

Trên dòng được chỉ định. Nút được xác định rõ ràng trước khi b_graph sử dụng nó - tôi đã làm gì ở đây?

Trả lời

24

node không phải là một lớp, đó là mẫu lớp. Bạn cần phải nhanh chóng nó để sử dụng nó như các loại nguyên tố của vector, ví dụ,

vector<node<int> > vertices; 

(int được sử dụng như một ví dụ, bạn nên sử dụng các loại mà bạn thực sự cần)

+0

oh! đuợc. Cảm ơn, mà làm việc. – Bay

+2

Cảm ơn - Tôi đã tìm thấy câu trả lời của bạn trong khi tìm kiếm và nó đã tiết kiệm thời gian cho tôi. –

Các vấn đề liên quan