सूचक बदले में त्रुटि संकलन

वोट
0

मैं के रूप में BST वर्ग ही है इस सूत्र

BST.hpp

template<class T> 
class BinarySearchTree
{
 private:
  struct tree_node
  {
    tree_node* left;
    tree_node* right;
    T data;

    tree_node( const T & thedata, tree_node * l = NULL, tree_node * r = NULL )
            : data( thedata ), left( l ), right( r ) { }
  };
tree_node* root;

public:
  //some functions
private:
  struct tree_node* minFunc( tree_node** node);
};

मैं के रूप में में किया समारोह से एक सूचक वापस जाने के लिए कोशिश कर रहा था इस सूत्र

minFunc की परिभाषा ही BST.hpp फ़ाइल में है

template <class T>
struct tree_node* BST<T>::minFunc(tree_node** node)
{
tree_node* current = *node;
while(current->left != NULL)
{
    current = current->left;
}
return current;
}

यह पता लगाने में असमर्थ संकलन त्रुटियों :

त्रुटि C2143: सिंटेक्स त्रुटि: लापता ';' इससे पहले कि '*'

त्रुटि C2065: 'टी': अघोषित पहचानकर्ता

त्रुटि C2955: 'BST': वर्ग टेम्पलेट के उपयोग requ मैं टेम्पलेट तर्क सूची रेस

त्रुटि C2509: 'minFunc': सदस्य समारोह 'BST' में नहीं घोषित

परिभाषा के लिए इन सभी ओर इशारा करते हुए

29/05/2011 को 11:29
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


3 जवाब

वोट
2

मेरे सबसे अच्छे अनुमान है कि है struct tree_nodeदिखाई नहीं देता है। यह शायद घोषित नहीं कर रहा है / कुछ वर्ग के अंदर घोषित कर दिया।

29/05/2011 को 11:37
का स्रोत उपयोगकर्ता

वोट
0

treenode BST में एक निजी struct है - आप BST बाहर यह उपयोग नहीं कर सकते

29/05/2011 को 11:38
का स्रोत उपयोगकर्ता

वोट
1

  1. इस घोषणा को बदलें:

    struct tree_node * minFunc (tree_node ** नोड);

इस मामले में

tree_node* minFunc( tree_node** node);

यह की परिभाषा के हिसाब से बदलें।

  1. डबल सूचक बुरा डिजाइन की एक निश्चित संकेत है
  2. आप एक हैडर struct tree_node को परिभाषित करने में शामिल किया था?

संपादित करें

परिभाषा होनी चाहिए

template <class T>
typename BST<T>::tree_node* BST<T>::minFunc(tree_node** node)
{
tree_node* current = *node;
while(current->left != NULL)
{
    current = current->left;
}
return current;
}

वैसे, एक ध्यान में रखना है कि विधि minFunc निजी और नहीं कर सकते पहुँच यह वर्ग के बाहर है

29/05/2011 को 12:03
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more