Переменная недоступна?

В приведенном ниже коде переменная ‘id’ недоступна в классе Horse, это проблема наследования? Проблема с модификаторами доступа? Любая помощь с благодарностью.

class Animal
{
private:
int id;
};

class Horse : public Animal
{
public:
Horse(){
if((id % 2) == 1) { id++ };
}
};

-2

Решение

учебный класс Horse В этом случае наследует только открытые и защищенные элементы, если вы используете:

class Horse : public Animal

наследовать idВы можете определить этот закрытый элемент в Animal класс как защищенный:

class Animal
{
protected:
int id;
};
3

Другие решения

Вы, вероятно, хотите id быть protected и не private, затем. Или лучше использовать тот метод доступа, который вы написали …

0

id является частным Animal и, следовательно, недоступны для Horse, Удовлетворительный дизайн будет иметь доступ id через getID(), хотя вам понадобится метод установки, а также существующий метод получения.

0

объявление переменной как закрытой приведет к тому, что только класс, в котором объявлена ​​переменная, может получить к ней доступ, если вы хотите, чтобы классы, которые наследуют базовые классы, могли также иметь доступ к переменной, используйте параметр protected

0
По вопросам рекламы [email protected]