переопределен и работает в базовом классе. но когда речь заходит о наследники не работает,
Test2& Test2::operator=(const Test2& tt) {Test::operator=(tt);}
по идее должен быть доступ к унаследованным членам но их нет. если в базовом классе переменна типа int находится в private смогу я до нее так достучаться или как это сделать *?
кусок кода с указателями без контекста - круто
Потому что operator = переопределяется в каждом классе отдельно. Не бывает полиморфного присваивания даже на логическом уровне
сли в базовом классе переменна типа int находится в private смогу я до нее так достучаться или как это сделать *? Нет не сможешь. Но ты сможешь вызвать метод предка для его копирования или сделать в предке его protected. Чаще всего просто операцию присваивания (копирования) каскадируют, наследники вызывают операцию копирования предка, затем копируют свои члены.
Обсуждают сегодня