QT Creator - видео - все видео
Новые видео из канала RuTube на сегодня - 21 April 2026 г.
Уроки Qt C++: взаимоотношения дочернего и родительских объектов типа QObjectОтладка программного обеспечения. Обнаружение утечек памяти с помощью ValgrindСовместное использование Valgrind и отладчика GDB для поиска утечек памяти и устранения ошибок сегментации SIGSEGVValgrind инструмент для поиска утечек памяти для Linux интегрированный в QT Creator. Н аэтом видео я покажу установку Valgrind и работу по отладке приложения.Уроки с++ для начинающих: как использовать конструкторы и методы классаДеструкторы в С++ практический примерКонструкторы и деструкторы объектов С++ простыми словами. Что происходит в памяти? Где создаются объекты?В этом видео вы узнаете как установить Qt Creator Offline установщиком на Linux Ubuntu.Разберёмся, что такое Stack и Heap: Стек — это участок памяти, предназначенный для статического распределения в ходе выполнения программы. При вызове функции локальные переменные и данные о вызове размещаются на вершине стека. После завершения работы функции эта информация автоматически удаляется, освобождая память. Куча (Heap) — это участок памяти, предназначенный для динамического распределения. Данные, размещенные в куче, могут существовать дольше времени выполнения отдельных функций, поскольку управление выделением и освобождением памяти осуществляется вручную. Это делает кучу полезной при работе с большими данными или в сценариях, где данные должны сохраняться на протяжении долгого времени выполнения программы. Основные различия между стеком и кучей: Выделение памяти: в стеке система выделяет память автоматически, а в куче пользователь должен выделять память вручную. Структура: в стеке память выделяется в виде непрерывного блока (принцип LIFO), а в куче блоки памяти могут выделяться и освобождаться в любой момент времени. Скорость доступа: в стеке доступ быстрее за счёт подхода LIFO, а в куче медленнее из-за ручного поиска и управления блоками. Ограничение размера: у стека заранее определённый и фиксированный размер, ограниченный параметрами ОС, а у кучи больший изменяемый размер. Доступность: стек привязан к стеку вызовов, а куча доступна глобально, то есть к ней можно обращаться и её можно изменять из любой части кода.Qt Test — это платформа для модульного тестирования приложений и библиотек на основе Qt. Qt Test предоставляет все функции, обычно встречающиеся в платформах для модульного тестирования, а также расширения для тестирования графических пользовательских интерфейсов. Qt Test предназначен для упрощения написания модульных тестов для приложений и библиотек на основе Qt: Qt Test состоит примерно из 6000 строк кода и 60 экспортируемых символов. Для тестирования без графического интерфейса Qt Test требуется лишь несколько символов из модуля Qt Core. Qt-тест не требует специальных тестировщиков; нет специальной регистрации для проведения тестов. Тест может выполняться несколько раз с разными тестовыми данными. Qt Test предлагает функциональность для моделирования работы с мышью и клавиатурой. Qt Test поддерживает бенчмаркинг и предоставляет несколько исходных данных для измерения. Qt Test выводит сообщения, которые могут быть интерпретированы Qt Creator, Visual Studio и KDevelop. Сообщение об ошибках является потокобезопасным и атомарным.Широкое использование шаблонов предотвращает ошибки, вносимые неявным приведением типов. Пользовательские типы могут быть легко добавлены к тестовым данным и выходным данным теста. Вы можете использовать мастер Qt Creator для создания проекта, содержащего тесты Qt, а также для их сборки и запуска непосредственно из Qt Creator.Стоит ли идти учиться на программиста или в IT в 2025 или искусственный интеллект и chat GPT скоро заменить людей в данной профессии? Советы тем, кто думает изучать программирование. 0:00 Введение 0:18 искусственный интеллект 2:32 Правило 1 3:14 Правило 2 4:39 Реклама от спонсора 5:59 Правило 3 6:45 Правило 4 8:09 Правило 5 9:15 Правило 6 10:38 Правило 7 11:31 Правило 8 12:17 ЗаключениеАлиазинг в C++ (aliasing) - Риски, возможности и методы - Рой Баркан - CppCon 2022 Алиазинг в C++ (aliasing) 0:00 Введение 1:14 Определение псевдонимов 2:11 Зависимости и проблемы 4:09 Примеры с функциями 7:29 Примеры с комплексными числами 9:27 Примеры с объектами и массивами 11:17 Неопределенное поведение 13:23 Алгоритмы STL 13:42 Удаление максимальных элементов 15:17 Псевдонимы и итераторы 16:46 Примеры ошибок 18:21 Влияние псевдонимов на производительность 22:25 Примеры из практики 24:16 История и современные языки 26:44 Заключение 27:26 Шаблоны и указатели в C++ 28:20 Строгий алиасинг и его последствия 30:47 Примеры смягчения псевдонимов 33:01 Политики выполнения и псевдонимы 34:55 Сильные типы и псевдонимы 37:21 Рекомендации по написанию кода 40:10 Пример функции с выбором передачи 40:54 Использование двоеточия для политик 42:23 Будущее C++ и семантика псевдонимов 44:07 Предложение по согласованному использованию псевдонимов 45:57 Использование объединений для обхода псевдонимов 49:25 Проблемы и ограничения использования объединенийПервоначальное вдохновение для реализации public_cast пришло отсюда. Я написал свою собственную версию, которая является более современной и (ИМХО) более простой для понимания, но я не ставлю себе в заслугу изобретательность базовой технологии реализации. https://github.com/libretro/bnes-libretro/blob/master/nall/public_cast.hpp После загрузки видео я понял, что вы могли бы использовать тип признака, что-то вроде public_cast_traits, и специализировать его с помощью CxSecret, чтобы "сохранить" тип указателя элемента (int C::*) один раз, а затем просто искать его внутри public_cast, чтобы вам не приходилось повторять его каждый раз. Другой материал по теме: https://ru.wikipedia.org/wiki/Быстрый_обратный_квадратный_корень Strict Aliasing: https://gist.github.com/shafik/848ae25ee209f698763cffee272a58f8Инициализация в современном C++ Timur Doumler. Уроки С++ простым языком. Инициализация переменной — одно из простейших действий, но в С++ сделать это совсем не просто. Вряд ли в этом языке есть какая-либо другая область, в которой за последние годы было бы столько же отчётов об отклонениях от стандарта, исправлений и изменений. Правила инициализации меняются от стандарта к стандарту, и в интернете есть бесчисленное количество постов о том, как запутана инициализация в C++. Поэтому сделать её систематический обзор — задача нетривиальная. В данном видео поговорим о том, что было унаследовано от С, потом о С++98, затем о С++03, С++11, С++14 и С++17. Мы обсудим распространённые ошибки, и я дам свои рекомендации относительно правильной инициализации. Также я расскажу о нововведениях в С++20. инициализация в современном C++ 00:00 Введение 01:02 Обзор инициализации в C++ 03:01 Инициализация по умолчанию 04:52 Инициализация копированием 06:47 Агрегатная инициализация 10:49 Конструкторы в C++ 13:09 Последовательность преобразований и разрешение перегрузки 14:05 Примеры использования конструкторов 14:41 Проблемы с синтаксисом прямой инициализации 16:55 Инициализация в C++ 18:02 Инициализация значением в C++03 20:54 Проблемы с инициализацией значением 25:14 Инициализация списка 26:25 Векторы и инициализация списка 27:39 Проблемы с инициализацией списка 28:26 Проблемы с конструкторами 31:47 Проблемы в шаблонном коде 33:20 Итоги инициализации списка 34:18 Пустые фигурные скобки 36:46 Сужающие преобразования 37:04 Вложенные скобки и инициализация 38:04 Проблемы с вложенными скобками 40:04 Инициализация в C++11 и C++14 43:52 Гарантированное исключение копирования в C++17 46:17 Вывод аргументов шаблона класса в C++17 47:14 Назначаемая инициализация в C++20 49:00 Ограничения и исправления в C++20 51:35 Проблемы с инициализацией списков 54:09 Рекомендации по использованию синтаксиса 57:10 Заключение и ответы на вопросыПравило пяти в C++ гласит, что если явно определяется один из пяти специальных методов класса, скорее всего, нужно явно определить и остальные четыре: Деструктор. Конструктор копирования. Оператор присваивания копированием. Конструктор перемещения. Оператор присваивания перемещением. Правило пяти решает проблемы эффективности и безопасности при работе с ресурсами. Копирование ресурсов может быть ресурсоёмким с точки зрения производительности, а перемещение позволяет избежать ненужных операций копирования, передавая владение ресурсами непосредственно новому объекту. Игнорирование необходимости реализации этих методов в классах, управляющих ресурсами, может привести к утечкам памяти, двойному освобождению ресурсов и другим проблемам.Семантика перемещения (англ. move semantics) — собирательное название специализированных средств языка программирования C++, которые предназначены для осуществления перемещения данных во время инициализации и конструирования новых объектов, что позволяет сократить издержки на копирование. Для практического осуществления семантики перемещения в синтаксис C++ введены rvalue ссылки, а также конструкторы перемещения и перемещающий оператор присваивания. Появление в стандарте языка C++ семантики перемещения состоялось с выходом обновлённого стандарта C++11; оно было продиктовано необходимостью оптимизировать вычислительные расходы там, где до этого применялась семантика передачи по значению. Введение семантики перемещения данных в стандарт языка получило высокую оценку сообщества разработчиков ввиду того, что она даёт широкие возможности для оптимизации внутреннего кода вызовов функций и методов классов. Эта оптимизация достигается отказом от копирования данных при создании временных объектов, у которых отсутствует необходимость сохранять свои внутренние ресурсы для дальнейшего использования. Появление в стандарте семантики перемещения потребовало формализовать вывод аргументов параметризованных типов (шаблонов) и их использование, в связи с чем появился регламент прямой передачи, а «правило трёх» эволюционировало в «правило пяти»: теперь при управлении памятью помимо конструктора копирования, деструктора и копирующего оператора присваивания разработчику требуется определить конструктор перемещения и перемещающий оператор присваивания. Компилятору разрешено их автоматически задействовать тогда, когда их аргументы соответствуют определению rvalue.Уроки Qt: глубокое погружение в базовый класс Qt для обеспечения соединения объектов - QObjectУроки C++ лоя начинающих. Конструкторы копирования понятным языком по-русскиСреда Qt Installer Framework для развёртывания Qt приложений под WINDOWS MAC и LINUX #devops #qt #it #программирование #C++ #СИРоссийских разработчиков отстранили от ядра Linux из-за санкций Байдена - комментарии иностранного программиста #Linux #санкции #embedded #kernel #линус #торвальдс #сша #Россия #новости #политика