Подход ветвей служит скорее контрпримером, чем что-либо, что можно было бы сделать на самом деле.

лкиваюсь с ситуацией, когда мне нужно получить доступ к дочерним переменным-членам внутри родительского класса. Я знаю, что это противоречит принципам ОО, но мне приходится иметь дело со сценарием, в котором сотни классов наследуются от одного, и половина из них перестала использовать одну из родительских переменных, а также объявила и использовала свои собственные (нужно было переключиться от int до int [] и, очевидно, человек, который сделал это, не принял во внимание применение этих изменений в родительском классе).

Один из вариантов - иметь виртуальную функцию для работы с ней, но это означает, что мне нужно изменить код в сотнях файлов / объектов и протестировать каждый из них. Поэтому я подумал, что если можно использовать магию указателей С старой школы для получения доступа к этим переменным внутри родительского метода, это избавит от необходимости сотен виртуальных функций.

В основном это то, чего я хочу достичь:

class Parent
{
    void DoSomething()
    {
        // This is what I need
        childMember = 0;
    }
}

class Child1 : Parent
{
    int childMember;
}

class Child2 : Parent
{
    int childMember;
}

Пожалуйста, дайте мне знать, если это вообще возможно. Если да, то как мне этого добиться.
Другие предложения приветствуются, но имейте в виду, что я хотел бы вносить изменения только в родительский класс.
ТИА.

Ответы на вопрос(9)

Ваш ответ на вопрос