Ошибка на getValue - PullRequest
       4

Ошибка на getValue

0 голосов
/ 07 марта 2011

Я написал этот класс. Это не полное описание исходного класса, чтобы сделать мою формулировку задачи краткой, я даю то, что требуется

template < class T>  
class RB
{  
class Child  
{  
members are Child are  
  T getValue() const , Child* getRightChild() const , Child* getLeftChild() const ,  void setLeftChild(Child *i_leftChild) , void setRightChild(Child *i_rightChild)  
}  
//Problematic function   
void levelOrder(Child *root);  
};

Можете ли вы указать, почему мой компилятор говорит "137 getValue' has not been declared "

template < typename T>  
void RB< T>::levelOrder(Child *root)  
{  
     std::vector< RB< int>::Child* > vec1 , vec2;  
     vec1.push_back(root);  
      vector< RB< int>::Child* >::iterator vec1start ,vec1end , vec2start, vec2end;  
     while(vec1.size() != 0 && vec2.size() != 0 )  
     {  
         vec1start = vec1.begin();  
         vec1end = vec1.end();  
         for( ; vec1start != vec1end ; ++vec1start)  
         {  
          std::cout<<"\n node value = "<< vec1start->getValue();   

Я думаю, что я также не определил вектор правильно, мой вектор должен содержать внутренний элемент класса, любая помощь с этим также приветствуется

1 Ответ

1 голос
/ 07 марта 2011

Одна проблема в том, что вы не инициализируете vec1start.Кроме того, почему RB является шаблоном, если вы никогда не используете аргумент шаблона и используете только RB<int>?Вы получаете ошибку, потому что vec1start является итератором, который при разыменовании возвращает указатель;таким образом, вам нужно сделать (*vec1start)->getValue(), чтобы делать то, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...