Почему подклассы не разделяют один и тот же частный membervariable в суперклассе, используя полиморфизм? Есть только один экземпляр базового класса, и если SubA устанавливает частный член через мутатор - почему тогда SubB не может получить доступ к этому значению. Как бы это выглядело, если я хочу, чтобы подклассы делили один и тот же частный член?Полиморфизм - подклассы совместного использования базовых членов базового класса
#include <iostream>
class Super {
private:
int cnt;
public:
int getCnt() {
return cnt;
}
void setCnt(int cnt) {
this->cnt = cnt;
}
};
class SubA: public Super {
};
class SubB: public Super {
};
int main() {
Super *super;
SubA a;
SubB b;
super = &a;
super->setCnt(10);
super = &b;
std::cout << super->getCnt() << std::endl;
super = &a;
std::cout << super->getCnt() << std::endl;
return 0;
}
производит:
-8589546555 (garbage)
10
b не инициализируется. Итак, он производит значение для мусора – Technoid