2015-01-20 2 views
-2

Мне было сказано, что scope resolution ничего не дает, кроме как дает пользователю функциональность только declare function inside the class и дает соответствующие definition outside of the class. В моем случае я хочу return private member, но когда я пользуюсь scope resolution, я получаю error, но когда я don't use scope resolution и у вас есть definition inside the class и return the same private member I don't get any error. Может кто-нибудь объяснить мне почему? До сих пор мое понимание заключалось в том, что поведение и все остальное одинаково при использовании разрешения области видимости, и единственное различие заключается в том, что мы используем разрешение области только для определения функции снаружи. Я никогда не знал, что если мне нужно вернуть частный член, то я не могу использовать разрешение области. Я обязан определять функцию внутри класса. Может кто-то, пожалуйста, пролил свет на него. Благодаря ! Правильно ли я понимаю?Что касается возврата частного члена при использовании разрешения области

Ниже приведен фрагмент кода:

class Bst 
{ 
private: 
    int maxnum,minnum; 
    struct node 
    { 
     node *left; 
     int data; 
     node *right; 
    }*root; 
public: 
node * min(); 
}; 
node * Bst::min() 
//^^^ error at this place 
    { 

//some code 
} 

же код без разрешения области видимости

class Bst 
{ 
private: 
    int maxnum, minnum; 
    struct node 
    { 
     node *left; 
     int data; 
     node *right; 
    }*root; 
public: 
    node * min() // No error  
    { 
     //some code 
    } 
}; 
+0

Опубликуйте свой фактический код (если его много, уменьшите его до минимума, который иллюстрирует вашу проблему) с ошибкой (-ами) компилятора. –

+0

Вас учили неправильно, '::' имеет много применений. –

+0

Проводка кода, показывающего проблему, проделает долгий путь в получении положительной обратной связи. –

ответ

1

Когда вы определяете метод вне класса, он должен выглядеть следующим образом:

Bst::node * Bst::min() 
+0

Большое спасибо !!!! – tanz

Смежные вопросы