С++ стрим от Тимофея Хирьянова
Преподаватель МФТИ запустил трансляцию лекцию Алгоритмы и структуры данных с++
Преподаватель МФТИ запустил трансляцию лекцию Алгоритмы и структуры данных с++
Привет.Частое использование указателей приводит к путанице и дублированию кода (при создании например указателей, которые нужны нам только в области работы функции, придётся прописывать оператор delete, чтобы устранить утечку памяти). Поэтому в C++ есть shared-ptr, unique-ptr и auto-ptr (это вообще отдельная тема в чем их отличие:))
В этом посте рассмотрим минимальную реализацию умного указателя. Его принцип заключается в том, что этот указатель мы выносим в отдельный объект типа SmartPointer, который хранит указатель.
По сути, этот объект за счёт устройства языка позволяет не заботиться об освобождении памяти. Ведь при выходе из области видимости функции у нашего объекта вызывается деструктор, который за нас освобождает память.
на 20-ой строчке переопределение оператора звездочка, чтобы обращаться к элементу
Так устроен самый примитивный смарт поинтер :)
Я кстати часто разбираю структуры, программы и т.п. Если хотите разобраться намного глубже в алгоритмах и теории можете подписаться на мой Telegram-канал.
Сёркииис! Сегодня затронем почти не обсуждаемую тему в рунете - как написать чит на C++. Я не призываю вас писать читы для игр, эту тему я затрагиваю лишь в познавательных целях.
Вчера мне предложили написать чит для игры, опыта в этом у меня конечно нет, но из любопытства я сразу же "побежал" читать забугорные сайты на эту тему, так в итоге я написал свой "чит" для накрутки денег в CS 1.6:
Идея такая, ищем процесс с игрой, заходим в его память и меняем нужные нам данные. Как можно заметить, я явно указываю адрес в памяти, который хранит деньги, чтобы сэкономить вам время чтения этого поста (кому интересно, здесь можно посмотреть, как перебирать ячейки памяти процесса). Весь код прокомментирован и думаю, у вас не должно быть проблем с его понимаем, ведь в C++ невероятно удобно работать с памятью.
Мой телеграм-канал: @itpods
Решил как-то раз попробовать в это ваше С и С++ программирование для начинающих. В принципе выглядит неплохо, хотя создателям языка предстоит еще много сделать для его усовершенствования. К примеру в Дельфи есть такое понятие, как property - свойства по нашему. Нечто на подобии можно сделать и в С++ .
class MyTest
{
...
private:
// приватный член класса
int m_member;
public:
// константная ссылка на приватный член - публичный доступ только на чтение
const int & Member = m_member;
void SetMember( int var) { };
...
}
Ну и с помощью препроцессора автоматизировать эту конструкцию
// Property
#define _PROPERTY_(TYPE, MEMBER, PROP_NAME)\
protected: \
TYPE MEMBER;\
public:\
const TYPE & PROP_NAME = MEMBER;\
void Set ## PROP_NAME (TYPE _v) { MEMBER = _v; };
Применение выглядит так:
class MyTest
{
...
_PROPERTY_( int, m_member, Member );
_PROPERTY_( bool, m_isvisible, IsVisible );
_PROPERTY_( long, m_flag, Flag );
...
PS: Наверное это потребует применение стандарта С++11
Кончается лето, а в месте с тем — и прекрасная возможность для самообразования. Тысячи студентов мечтают научиться программировать под Android, при этом, многие из них знакомы с языком С++ и библиотекой Qt. Значит — вы возможно уже все умеете, но не «делаете это».
Библиотека Qt с давних пор позволяет разрабатывать приложения для Android на С++. Однако, при этом у вас обязательно возникнут проблемы — стандартные элементы интерфейса на телефонах будут выглядеть ужасно, вам придётся разрабатывать свои собственные или найти готовые.
В статье по ссылке описаны наиболее интересные моменты разработки классической игры «Пазлы»: https://pro-prof.com/archives/5795.
Бесплатная, совсем без рекламы, доступна для загрузки из Google Play: https://play.google.com/store/apps/details?id=org.qtproject....
Конечно, исходный код открыт: https://bitbucket.org/rrrfer-admin/simple_android_puzzle/src...
Компоненты, использование которых должно помочь вам выпустить своё приложение для Android быстрее выделены в отдельную статью: https://pro-prof.com/archives/4636#Qt_gamedev
При проектировании Пазлов, мне показалось возможным применение шаблона проектирования Декоратор. В статье описано почему это не получилось и о чем нужно задуматься если Вам тоже кажется подходящим этот паттерн.
Непосредственно о пазлах, в статье написано: «как нарисовать фигурные контуры?» (пазлы резные) и «как вырезать фигурный фрагмент изображения?». Я описал лишь эти аспекты, т. к. они могут пригодиться и в других ваших приложениях.
PS. Очень прошу протестировать игрушку и, при возникновении проблем, - описать их в комментариях к статьи или отзывах на Google Play.
Сейчас пишу программу. И столкнулся с этим:
Это весьма забавно, если ещё учесть тот факт, что все работает так как надо!
То есть программа работает, но ей что-то в этой жизни не нравится, вот только что, она сама пока еще не знает... Машины потихоньку превращаются в людей!
P.S. С ошибкой разобрался, но ситуация прикольная!
Собственно, сабж. Ищу советов и дельных комментариев к ситуации.
Итак.
Некоторое время назад решил сменить сферу деятельности и перейти в IT, благо, небольшой багаж был. В процессе просмотра вакансий и разъездов по интервью выяснил, кто непосредственно позиций для джунов нигде нет. Под джуновским уровнем я понимаю учебник Прата + Программирование Под Win95 + Программирование на С++ для профессионалов + всякие базы вроде алгоритмов и с.д. Везде требуется дополнительный стек, и часто уникальный (от подразделов буста, до всячески рестов и т.д.)
Что в таком случае делать? Есть ли стратегия прокачки?
И вообще - актуально ли сейчас искать по c++? Или лучше уж переходить на java?
Спасибо.
Внимание: Видео на английском языке, но изъяснения вполне понятны и ясны.
Начинаем с простых правил и заканчиваем более сложными моментами.