Класс друзей не хорошо со мной?
-
26-10-2019 - |
Вопрос
Я пытаюсь иметь дело с friend class
в первый раз. Я написал код ниже:
class Kind{
private:
friend class Type;
int x;
public:
Kind(){ x=0; }
void setX(int X) { x =X; }
int getX() { return x; }
};
class Type: public Kind {
public:
friend class Kind;
Type(){ }
Kind root;
root.x=3;
};
Компилятор говорит мне, что я не могу сделать root.x=3;
, В чем проблема??
Решение
Проблема в том, что вы пытаетесь выполнить оператор в месте, где компилятор ожидает объявлений участников. Попробуйте поместить это в метод
class Type : public Kind {
...
void Example() {
Kind root;
root.x = 3;
}
};
Другие советы
Вы не можете выполнить задание как часть объявления класса. Вместо этого делайте это в функции участника.
Не связан с StackOverflow