Я создаю очень простую программу, которая включает наследование.Я поместил функцию в «защищенную» область родительского класса, и теперь у меня нет доступа из дочернего класса.Вот мой код:
class Product : protected Item
{
private:
double Price;
protected:
double getPrice(){return Price;}
//other code not connected
};
Позже я получаю:
class Toy : protected Item
{
// class Toy code that does not mention getPrice() at all
};
И после этого я получаю другой класс, в котором я на самом деле пытаюсь использовать функцию getPrice ().
В заголовочном файле нового класса:
class Game : protected Toy
{
double printGame(){return getPrice();}
};
Эта строка не дает мне ошибки.
Но в файле game.cpp:
ostream& operator << (ostream& Output, const Game &printedGame)
{
return Output
<< "The game price is: "
//This is the problem line
<< printedGame.printGame()
<< "." ;
}
Слово "printGame" возвращает меня "Ошибка: объект имеет спецификаторы типов, которые не совместимы с функцией-членом"
Когда я пытался идти напрямую (что я пробовал ранее, как таковой):
printedGame.getPrice()
Я получаю эту ошибку, и еще одну, сообщающую мне, что функция getPrice () недоступна.
Любая помощь здесь?Спасибо !!