Введённые ещё во времена, когда общая ООП парадигма не была окончательно сформирована, имеющиеся только в C++ реализации ООП парадигмы, т.н. «дружественные функции» стоят особняком в концепции ООП, и часто вызывают недоумения по многим причинам. Read more
Значения указателей по-умолч. NULL, 0 и nullptr в C и C++
Продекларированные, но ещё не инициализированные, т.е. заготовленные заранее для работы в будущем, переменные-указатели надо сразу инициализировать соответствующим нулевым значением – 0
, NULL
или nullptr
, т.к. в дальнейшем могут возникнуть проблемы из-за того, что, если значение не было присвоено, то указатель по-умолч. будет указывать на произвольный адрес, содержимым которого является мусор. Read more
Как собрать C++ программу для 64-битной архитектуры в IDE Visual Studio
Для смены архитектуры нужно явно указать IDE, что нужно собирать проект под 64-битную/разрядную систему. Для этого в каждом проекте решения надо изменить всего 2 опции, или просто проконтролировать их правильное изменение, т.к. они могут меняться автоматически как полностью, так и частично. Read more
Правила хорошего тона программирования
Список некоторых правил хорошего тона программирования, которые применимы преимущественно для Си-подобных языков программирования. Read more
Ложь про высочайшую производительность сахарных языков программирования
Бытует распространённое мнение о том, что сахарные языки почти не уступают плюсам по производительности. Всё это враньё, что ПО, написанное на Java или C#, и запущенное на их виртуальных машинах JVM (Java Virtual Machine) и CLR (Common Language Runtime) современных версий, якобы давно почти не уступает по скорости ПО написанном на C++. Наглое враньё! Уступает очень сильно и всегда будет уступать! Read more
Как добавить файлы в C++ проект Visual Studio?
В этом посте опишу как добавить новые заголовочные файлы и файлы кода в существующий C++ проект в IDE Microsoft Visual Studio. Не полноценную библиотеку, а только лишь дополнительные файлы кода. Read more
Как подключить библиотеку в программу на C++?
Как же подключить/загрузить внешнюю динамическую библиотеку в свою программу/проект, написанную на языке программирования C++ в IDE Microsoft Visual Studio, в ОС Microsoft Windows? Read more
Статические члены класса в C++
Члены класса могут использоваться с ключевым словом static. Когда член класса объявляется как статический, то тем самым компилятору дается указание, что эта переменная не динамическая, т.е. принадлежит только классу и не даётся объектам этого класса. Статическая переменная существовует только в классе, т.е. всегда будет только одна копия этого члена, сколько бы объектов этого класса ни создавалось. Read more
Оператор запятая в цикле for со множественным условием
В Си-подобных языках есть разделитель-запятая как часть синтаксиса, а есть оператор-запятая как малоизвестный, но всё же полноценный бинарный оператор. В цикле for со множеством параметров есть и то и другое, что может ввести в заблуждение. Read more
Виджеты в фреймворке Qt
Qt является очень популярным фреймворком на C++ для создания оконных приложений и поэтому обделять его вниманием не стоит. Как же он устроен? Он довольно прост и лаконичен. Всё визуальные элементы на форме в Qt являются виджетами (widget). Как же их создавать в программном коде, добавлять на форму и связывать с действиями? Посмотрим на примерах. Read more