C++_BE1
405 subscribers
278 photos
1 video
42 files
523 links
Канал по C/C++, полезный и интересный контент для всех уровней.
По вопросам сотрудничества @cyberJohnny
Download Telegram
#example

Некоторые различия между ссылками и указателями

1. Указатель может быть объявлен void, а ссылка - никогда. Пример на картинке.

2. Переменная-указатель может иметь несколько уровней вложенности, то есть, например, бывают одиночные указатели, двойные указатели, тройные указатели. Ссылка же имеет только один единственный уровень вложенности.

3. Ссылочная переменная не может быть обновлена.
#example

Могут ли ссылки отсылать к недопустимому местоположению в памяти в C++?

В C++ ссылки более безопасны, чем указатели, потому что ссылки должны быть инициализированы, и их нельзя изменить, чтобы ссылаться на что-то другое после инициализации. Но есть исключения, когда у нас могут быть недействительные ссылки.

Но есть пара исключений, когда у нас могут быть недействительные ссылки. Они приведены на картинке.
#article

CopperSpice представляет собой набор библиотек C++, используемых для разработки кроссплатформенных приложений.

https://cpp.libhunt.com/copperspice-alternatives
#example

Введение в обработку исключений

Одним из преимуществ C++ перед C является обработка исключений. Исключения - это ненормальные условия, с которыми программа сталкивается во время своего выполнения.

Есть два типа исключений: а) синхронные, б) асинхронные (например, которые находятся вне контроля программы, сбой диска и т. д.). Для этой цели C++ предоставляет следующие специализированные ключевые слова.

try: представляет блок кода, который может вызвать исключение.
catch: представляет блок кода, который выполнится при возникновении определенного исключения.
throw: используется для создания исключения. Также используется для перечисления исключений, которые генерирует функция, но не обрабатывает себя.
#library

Библиотека C++, предоставляющая различные параллельные структуры данных и схемы восстановления.

https://cpp.libhunt.com/xenium-alternatives
#guide

Руководство по C ++ 11: практическое руководство для программиста на каждый день.

https://stuartwheaton.com/blog/2020-06-14-c++11-guide/
#example

Могут ли статические функции быть виртуальными в C++?

В C++ статическая функция-член класса не может быть виртуальной.

Кроме того, статические функции-члены класса не могут быть const и volatile.

В примере кода приведены две функции, обе из которых не дадут программе скомпилироваться.
#article

Преобразование ста миллионов целых чисел в строки в секунду.

https://www.zverovich.net/2020/06/13/fast-int-to-string-revisited.html
#example

forward_list::unique() в C++ STL

forward_list::unique() — это встроенная функция в C++ STL, которая удаляет все последовательные повторяющиеся элементы из forward_list. Для сравнения используется бинарный предикат.
#example

Оператор присваивания ( = ), строго говоря, является бинарным оператором. Его объявление идентично объявлению любого другого бинарного оператора со следующими исключениями:

☑️ Он должен быть нестатической функцией-членом.

☑️ Он не наследуется производными классами.

☑️ Компилятор может создать функцию operator = по умолчанию для типов классов, если она не существует.

В примере показано, как объявить оператор присваивания.
C++ Concurrency in Action.pdf
6.5 MB
#books

C++ Concurrency in Action (2019)
Автор: Anthony Williams

Данная книга написана для программистов, желающих углубиться в тему многопоточности на C++. В ней подробно описано использование полезных особенностей языка, а также приведены типичные ошибки и готовые решения проблем разработки приложений с использованием нескольких потоков. Книга была обновлена и переработана, чтобы охватить последние изменения, внесенные C++14 и C++17.
#example

Декларатор ссылки lvalue: &

Содержит адрес объекта, но синтаксически ведет себя подобно объекту.

Ссылку lvalue можно считать другим именем для объекта. Объявление ссылки lvalue состоит из необязательного списка спецификаторов, за которым следует декларатор ссылки. Ссылка должна быть инициализирована и не может быть изменена.

Любой объект, адрес которого можно преобразовать в некоторый тип указателя, можно также преобразовать в аналогичный ссылочный тип. Например, любой объект, адрес которого можно преобразовать в тип char *, можно также преобразовать в тип char &.

В примере демонстрируется декларатор ссылки путем объявления объекта Person и ссылки на этот объект. Поскольку rFriend является ссылкой на myFriend, при обновлении любой из этих переменных изменяется один и тот же объект.
#video

Введение в Conan - мультиплатформенный менеджер пакетов для C/C++, который позволяет создавать и распространять двоичные файлы.

https://youtu.be/rsFA2VXwxbE