Что такое класс хранения?
Класс, который определяет срок существования, компоновку и расположение переменных/функций в памяти.
В C ++ поддерживаются такие классы хранения: auto, static, register, extern и mutable.
Обратите внимание, что register устарел для C++11. Для C++17 он был удален и зарезервирован для будущего использования.
#cpp
Подписывайтесь на канал 👉@cod_academy
Класс, который определяет срок существования, компоновку и расположение переменных/функций в памяти.
В C ++ поддерживаются такие классы хранения: auto, static, register, extern и mutable.
Обратите внимание, что register устарел для C++11. Для C++17 он был удален и зарезервирован для будущего использования.
#cpp
Подписывайтесь на канал 👉@cod_academy
Кортежи
Как и пара, кортеж представляет собой набор значений фиксированного размера для различных типов данных.
Иногда удобнее использовать std::array вместо кортежа. Такой массив подобен обычному массиву в Си вместе с несколькими функциями стандартной библиотеки C++. Эта структура данных была добавлена в 11 версии C++.
#cpp
Подписывайтесь на канал 👉@cod_academy
Как и пара, кортеж представляет собой набор значений фиксированного размера для различных типов данных.
Иногда удобнее использовать std::array вместо кортежа. Такой массив подобен обычному массиву в Си вместе с несколькими функциями стандартной библиотеки C++. Эта структура данных была добавлена в 11 версии C++.
#cpp
Подписывайтесь на канал 👉@cod_academy
Макрос watch
Макрос watch — один из самых полезных приёмов.
При отладке кода watch(переменная) выведет имя переменной и её значение.
#cpp
Подписывайтесь на канал 👉@cod_academy
Макрос watch — один из самых полезных приёмов.
При отладке кода watch(переменная) выведет имя переменной и её значение.
#cpp
Подписывайтесь на канал 👉@cod_academy
👍1
В чем разница между struct и class?
Ответ: Практически ни в чем. В struct модификаторы доступа по умолчанию public, в class private. Также отличается и наследование по умолчанию, у struct — public, у class — private.
#cpp
Подписывайтесь на канал 👉@cod_academy
Ответ: Практически ни в чем. В struct модификаторы доступа по умолчанию public, в class private. Также отличается и наследование по умолчанию, у struct — public, у class — private.
#cpp
Подписывайтесь на канал 👉@cod_academy
👍1👎1
Различие локальной переменной и поля класса с одинаковым именем
Указатель this может быть полезен в случае, когда локальная переменная в методе имеет то же самое имя, что и поле объекта:
Здесь в методе set мы присваиваем полю класса x значение локальной переменной this. Чтобы различить поле класса x и локальную переменную с тем же именем мы используем запись this->x при обращении к полю класса.
#cpp
Подписывайтесь на канал 👉@cod_academy
Указатель this может быть полезен в случае, когда локальная переменная в методе имеет то же самое имя, что и поле объекта:
void set(int x) { this->x = x; }Здесь в методе set мы присваиваем полю класса x значение локальной переменной this. Чтобы различить поле класса x и локальную переменную с тем же именем мы используем запись this->x при обращении к полю класса.
#cpp
Подписывайтесь на канал 👉@cod_academy
👍1
Работа с файлами
Например, необходимо создать текстовый файл и записать в него строку "Работа с файлами в С++". Для этого необходимо проделать следующие шаги:
1) создать объект класса ofstream;
2) связать объект класса с файлом, в который будет производиться запись;
3) записать строку в файл;
4) закрыть файл.
#cpp
Подписывайтесь на канал 👉@cod_academy
Например, необходимо создать текстовый файл и записать в него строку "Работа с файлами в С++". Для этого необходимо проделать следующие шаги:
1) создать объект класса ofstream;
2) связать объект класса с файлом, в который будет производиться запись;
3) записать строку в файл;
4) закрыть файл.
#cpp
Подписывайтесь на канал 👉@cod_academy
👍1
Перегрузка операторов
Ключевое слово operator позволяет изменить работу конкретного оператора с экземплярами класса. Это дает оператору дополнительное значение — "перегружает" его. Компилятор различает разные значения оператора, проверяя типы его операндов.
В примере оператор + перегружается для сложения двух комплексных чисел.
#cpp
Подписывайтесь на канал 👉@cod_academy
Ключевое слово operator позволяет изменить работу конкретного оператора с экземплярами класса. Это дает оператору дополнительное значение — "перегружает" его. Компилятор различает разные значения оператора, проверяя типы его операндов.
В примере оператор + перегружается для сложения двух комплексных чисел.
#cpp
Подписывайтесь на канал 👉@cod_academy
👍2❤1
Введение в обработку исключений
Одним из преимуществ C++ перед C является обработка исключений. Исключения - это ненормальные условия, с которыми программа сталкивается во время своего выполнения.
Есть два типа исключений: а) синхронные, б) асинхронные (например, которые находятся вне контроля программы, сбой диска и т. д.). Для этой цели C++ предоставляет следующие специализированные ключевые слова.
try: представляет блок кода, который может вызвать исключение.
catch: представляет блок кода, который выполнится при возникновении определенного исключения.
throw: используется для создания исключения. Также используется для перечисления исключений, которые генерирует функция, но не обрабатывает себя.
#cpp
Подписывайтесь на канал 👉@cod_academy
Одним из преимуществ C++ перед C является обработка исключений. Исключения - это ненормальные условия, с которыми программа сталкивается во время своего выполнения.
Есть два типа исключений: а) синхронные, б) асинхронные (например, которые находятся вне контроля программы, сбой диска и т. д.). Для этой цели C++ предоставляет следующие специализированные ключевые слова.
try: представляет блок кода, который может вызвать исключение.
catch: представляет блок кода, который выполнится при возникновении определенного исключения.
throw: используется для создания исключения. Также используется для перечисления исключений, которые генерирует функция, но не обрабатывает себя.
#cpp
Подписывайтесь на канал 👉@cod_academy
👍1
Как включить все стандартные библиотеки одной командой
Чтобы разом включить в проект все стандартные библиотеки, используйте
Но помните, что:
содержит множество заголовочных файлов, которые, возможно, и не понадобятся в конкретном проекте. А это может привести к увеличению времени компиляции.
#cpp
Подписывайтесь на канал 👉@cod_academy
Чтобы разом включить в проект все стандартные библиотеки, используйте
#include <bits/stdc++.h>. Это особенно полезно в условиях дефицита времени на соревнованиях по программированию.Но помните, что:
#include <bits/stdc++.h>содержит множество заголовочных файлов, которые, возможно, и не понадобятся в конкретном проекте. А это может привести к увеличению времени компиляции.
#include <bits/stdc++.h> не является стандартным заголовочным файлом библиотеки GNU C++. Таким образом, не относящиеся к типу GCC (GNU Compiler Collection) компиляторы могут испытывать затруднения в процессе исполнения. Однако так бывает не часто!#cpp
Подписывайтесь на канал 👉@cod_academy
👍2
Алгоритм set_intersection
Создает отсортированную последовательность из элементов, встречающихся в обеих последовательностях – [first1, last1) и [first2, last2).
#cpp
Подписывайтесь на канал 👉@cod_academy
Создает отсортированную последовательность из элементов, встречающихся в обеих последовательностях – [first1, last1) и [first2, last2).
#cpp
Подписывайтесь на канал 👉@cod_academy