işaretçi karşılığında hata derleme

oy
0

Ben aynı BST sınıf var bu konuya

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);
};

Ben yapılan işlev yönünden bir işaretçi dönmek için çalışıyordu bu konuya .

minFunc tanımı aynı BST.hpp dosyasında olduğunu

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;
}

Anlamaya edilemiyor derleme hataları :

C2143 hata: sözdizimi hatası: eksik ';' önce '*'

Hata C2065: 'T' bildirilmemiş tanıtıcısı

Hata C2955: 'BST': sınıf şablonu kullanımı requ i şablon bağımsız değişken listesi res

Hata C2509: 'minFunc': üye işlev değil 'BST' beyan

Bütün bu tanım işaret

Oluştur 29/05/2011 saat 11:29
kaynak kullanıcı
Diğer dillerde...                            


3 cevaplar

oy
2

En iyi tahminim olduğunu struct tree_nodegörülmez. Muhtemelen bazı sınıf içinde bildirilmek / beyan değil.

Cevap 29/05/2011 saat 11:37
kaynak kullanıcı

oy
0

treenode BST özel bir yapı - eğer BST dışında erişemez

Cevap 29/05/2011 saat 11:38
kaynak kullanıcı

oy
1

  1. Bu bildiriyi değiştirin:

    yapı tree_node * minFunc (tree_node ** düğüm);

bunun içine

tree_node* minFunc( tree_node** node);

buna göre bu tanımına değiştirin.

  1. Çift işaretçi kötü tasarımın bir işaretidir
  2. Eğer yapı tree_node tanımlayan bir başlık içerir mi?

DÜZENLE

tanım olmalıdır

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;
}

yöntem minFunc sınıf dışında özel ve cant giriş bunu olduğuna arada, not al

Cevap 29/05/2011 saat 12:03
kaynak kullanıcı

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