В C++, ако публичната виртуална функция на базовия клас има препратка към частно членско поле и производният клас не отменя този метод, тогава тази препратка ще сочи ли частен член на производния клас
Нуждаете се от пояснение относно виртуалните функции и частните членове на класа
comment
Примерен код ще бъде полезен. Как виртуалната функция има препратка?
- person Yakov Galka   schedule 04.09.2012
Отговори (2)
Методът на базовия клас все още ще действа върху члена на базовия клас, дори ако добавите член със същото име към вашия производен клас (което е, предполагам, точката, която искате да направите).
person
Nbr44
schedule
04.09.2012
Благодаря, има ли някаква техника за постигане на това, което искам тук?
- person user1447725; 04.09.2012
Можете да добавите виртуална функция, за да получите препратка към данните, които искате, и да я замените в производния клас. Въпреки това не изглежда много елегантно, какво всъщност се опитвате да постигнете, като правите това?
- person jcoder; 04.09.2012
всъщност се опитвам да използвам повторно кода (наследеното и промените в него, които трябва да се избягват) в моя нов клас, който променя само няколко метода от съществуващия
- person user1447725; 04.09.2012
Не, ако не замените метода, той ще бъде извикан сякаш от базовия клас и по този начин ще се отнася до частния метод в основния клас.
person
pmr
schedule
04.09.2012
Благодаря, има ли някаква техника за постигане на това, което искам тук?
- person user1447725; 04.09.2012
@user1447725 Да направя функцията защитена и виртуална?
- person pmr; 04.09.2012