Я сталкиваюсь с ситуацией, когда мне нужно получить доступ к дочерним переменным-членам внутри родительского класса. Я знаю, что это противоречит принципам ОО, но мне приходится иметь дело со сценарием, в котором сотни классов наследуются от одного, и половина из них перестала использовать одну из родительских переменных, а также объявила и использовала свои собственные (нужно было переключиться от int до int [] и, очевидно, человек, который сделал это, не принял во внимание применение этих изменений в родительском классе).
Один из вариантов - иметь виртуальную функцию для работы с ней, но это означает, что мне нужно изменить код в сотнях файлов / объектов и протестировать каждый из них. Поэтому я подумал, что если можно использовать магию указателей С старой школы для получения доступа к этим переменным внутри родительского метода, это избавит от необходимости сотен виртуальных функций.
В основном это то, чего я хочу достичь:
class Parent
{
void DoSomething()
{
// This is what I need
childMember = 0;
}
}
class Child1 : Parent
{
int childMember;
}
class Child2 : Parent
{
int childMember;
}
Пожалуйста, дайте мне знать, если это вообще возможно. Если да, то как мне этого добиться.
Другие предложения приветствуются, но имейте в виду, что я хотел бы вносить изменения только в родительский класс.
ТИА.