Мне было сказано, что 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
}
};
Опубликуйте свой фактический код (если его много, уменьшите его до минимума, который иллюстрирует вашу проблему) с ошибкой (-ами) компилятора. –
Вас учили неправильно, '::' имеет много применений. –
Проводка кода, показывающего проблему, проделает долгий путь в получении положительной обратной связи. –