'Node':使用类模板需要模板参数列表

时间:2014-09-23 17:31:51

标签: c++ visual-studio-2010 templates

我正在进行BST树遍历,当我使用模板时出现错误。 谢谢! 这是代码:

#include <iostream>
using namespace std;
template<typename T> struct Node{
     T data;
    Node*left;
    Node*right;
};

template<class T>void PreOrder(Node* root){
    if (root == NULL) return;
    cout << root->data;
    PreOrder(root -> right);
    PreOrder(root -> left);
}

我总是得到一个错误说&#34; Node&#39; :使用类模板需要模板参数列表。 &#34; 提前感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

您应该在Node<T>函数签名中使用 Node 语法(而不仅仅是PreOrder()):

template<class T> void PreOrder(Node<T>* root) {

此代码与MSVC10编译良好:

#include <iostream>
using namespace std;

template<typename T> struct Node {
    T data;
    Node*left;
    Node*right;
};

template<class T>void PreOrder(Node<T>* root) {
    if (root == NULL) return;
    cout << root->data;
    PreOrder(root->right);
    PreOrder(root->left);
}

int main() {
}