Category archives: C++

Критика дружественных функций, методов и классов в C++

Введённые ещё во времена, когда общая ООП парадигма не была окончательно сформирована, имеющиеся только в 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