У меня вопрос:qt C++ новый подобный метод. Могу ли я перегружать метод, писать новый метод или использовать параметр по умолчанию?
У меня есть огромная программа на C++, которую я должен адаптировать к новым потребностям. В программе у меня есть существующий метод, который используется около 20 раз в моем коде
void doSomething();
Теперь мне нужно использовать очень похожий новый метод в моей программе (использовать один или два раза). Этот новый метод должен делатьSomethingSimilar, когда установлен флаг. У меня есть несколько идей, как это кодировать. Есть ли лучшее решение/стиль для этого?
Идея 1: Напишите другой метод, который почти такой же, как doSomething(). Но это означает дублирование кода.
void doSomethingElse();
Идея 2: перегружать мой метод (но по-прежнему дублировать код)
void doSomething(bool myFlag);
Идея 3: параметры использования по умолчанию и включают в себя Условный оператор в старом методе DoSomething ().
void doSomething(bool myFlag=false);
Есть ли лучшее решение для этого? Или еще лучшее решение?
Благодарим вас
Merchaldes
Это общий вопрос типа OO/Architecture/C++ Style, и лучший ответ - это бит зависимости от контекста/среды, которого нет в этом вопросе. Предложите получить некоторые книги на C++, которые вникают в программирование на C++, например, Scott Meyers, или ищут сеть для такого рода обсуждений. – CarlH
Дублирование кода не обязательно плохое - это зависит от намерения кода. То есть, если X и Y одинаковы и всегда и всегда должны быть одинаковыми, независимо от содержимого X и Y, то это, вероятно, плохое дублирование. Если код по совпадению дублируется - X и Y просто оказываются одинаковыми * прямо сейчас * - тогда дублирование кода может быть лучшим решением. Преждевременно «недуплифицированный» («DRIED»?) Код может быть беспорядочным, чтобы распутать. – molbdnilo