Итак, я пытаюсь добавить новую функцию в устаревшую кодовую базу. И хочу сделать это с минимальным воздействием на клиентский код.
У меня есть класс с конструктором по умолчанию, а также с конструктором, отличным от стандартного.
Код: Выделить всё
struct A {
A() {}
A(int x) {}
A& operator+=(const A& other);
std::array data;
};
Теперь, с учетом нового требования, у меня есть добавление обязательного аргумента ко всем конструкторам класса A.< br />
напр. класс A теперь будет выглядеть так:
Код: Выделить всё
struct A {
A(B *b) { size = b->getSize(); data = new int[size];}
A(B *b, int x) { size = b->getSize(); data = new int[size]; }
int *data;
};
Is there any C++ trick / pattern that can help me to propagate this change to client code seamlessly (or with minimal changes)
I am trying to think of a solution but couldn't think of any.
Any pointers would be greatly appreciated.
Источник: https://stackoverflow.com/questions/781 ... t-codebase