В следующем коде, как получить функцию базового класса clocks :: increment () для приращения объекта производного класса thing2.hrs без изменения main ()?Если я добавляю временные операторы cout в increment (), то вызов thing.increment (), кажется, увеличивает элемент объекта базового класса или случайную область памяти, если я не создал базовый объект.Без изменения вызова функции main () для передачи переменной (и изменения функции), является ли единственным решением переопределить функцию новым определением в производном классе?
class clocks
{
public:
clocks();
void increment();
private:
int hrs;
};
clocks::clocks()
{
hrs = 1;
}
void clocks::increment()
{
hrs++;
}
class childClock : public clocks
{
public:
childClock();
int hrs;
};
childClock::childClock()
{
hrs = 2;
}
int main()
{
clocks thing;
childClock thing2;
cout << thing2.hrs<<" ";
thing2.increment();
cout << thing2.hrs;
return 0;
}