Тестирование классов в графических и консольных приложениях
Я для диагностики классов всегда пишу функцию печати внутри самого класса для вывода в консоль. Не отразится ли это на графическом приложении? Стоит ли ее удалять после завершения?
Я для диагностики классов всегда пишу функцию печати внутри самого класса для вывода в консоль. Не отразится ли это на графическом приложении? Стоит ли ее удалять после завершения?
Использовать вывод напрямую в консоль нежелательно. Используйте логгер — это специальный класс (или библиотека), который получает входящий поток сообщений и обрабатывает его заданным образом. Как правило, в логгерах доступны следующие функции:
С логгером вам не придется ничего удалять. Наоборот, во всех случаях возможной ошибки позаботьтесь о том, чтобы логировались все подробности ошибки, которые могут вам быть полезны для ее исправления. Когда вы будете делать билд приложения для пользователей, вы можете просто отключить логирование; можно также писать логи ошибок в файл и как-то пересылать файл разработчикам — это если клиентов немного, а поддержка важна.
Не уверен точно, но подозреваю, что если приложение пишет напрямую в std::cout, то можно запустить его из командной строки и читать логи. Не всегда эти логи предназначены для глаз пользователя.
К сожалению, я не могу подсказать вам конкретных решений на c++, но я уверен, что они существуют, и не в единственном экземпляре.
Примеры:
DVLOG()
(спасибо Abyx за ссылку).