Сообщество - Лига программистов C/C++

Лига программистов C/C++

65 постов 4 798 подписчиков

Популярные теги в сообществе:

617

С++ стрим от Тимофея Хирьянова

Преподаватель МФТИ запустил трансляцию лекцию Алгоритмы и структуры данных с++

9

Как устроены умные указатели C++

Привет.Частое использование указателей приводит к путанице и дублированию кода (при создании например указателей, которые нужны нам только в области работы функции, придётся прописывать оператор delete, чтобы устранить утечку памяти). Поэтому в C++ есть shared-ptr, unique-ptr и auto-ptr (это вообще отдельная тема в чем их отличие:))


В этом посте рассмотрим минимальную реализацию умного указателя. Его принцип заключается в том, что этот указатель мы выносим в отдельный объект типа SmartPointer, который хранит указатель.


По сути, этот объект за счёт устройства языка позволяет не заботиться об освобождении памяти. Ведь при выходе из области видимости функции у нашего объекта вызывается деструктор, который за нас освобождает память.


на 20-ой строчке переопределение оператора звездочка, чтобы обращаться к элементу


Так устроен самый примитивный смарт поинтер :)


Я кстати часто разбираю структуры, программы и т.п. Если хотите разобраться намного глубже в алгоритмах и теории можете подписаться на мой Telegram-канал.

Как устроены умные указатели C++ C++, Структура
Показать полностью 1
2

Пишем чит для Counter-Strike или как работать с памятью в C++

Сёркииис! Сегодня затронем почти не обсуждаемую тему в рунете - как написать чит на C++. Я не призываю вас писать читы для игр, эту тему я затрагиваю лишь в познавательных целях.

Вчера мне предложили написать чит для игры, опыта в этом у меня конечно нет, но из любопытства я сразу же "побежал" читать забугорные сайты на эту тему, так в итоге я написал свой "чит" для накрутки денег в CS 1.6:


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

Мой телеграм-канал: @itpods

Пишем чит для Counter-Strike или как работать с памятью в C++ Читы, C++, Программирование, Видео
Показать полностью 1 1

Попытка в программирование С++

Решил как-то раз попробовать в это ваше С и С++ программирование для начинающих. В принципе выглядит неплохо, хотя создателям языка предстоит еще много сделать для его усовершенствования. К примеру в Дельфи есть такое понятие, как 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

Показать полностью
13

Разработка игры Пазлы на С++ для Android

Кончается лето, а в месте с тем — и прекрасная возможность для самообразования. Тысячи студентов мечтают научиться программировать под 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.

Разработка игры Пазлы на С++ для Android Qt, Android разработка, Программирование, Длиннопост
Показать полностью 1

Ошибка

Сейчас пишу программу. И столкнулся с этим:

Ошибка Быдлокодинг, Восстание машин

Это весьма забавно, если ещё учесть тот факт, что все работает так как надо!

То есть программа работает, но ей что-то в этой жизни не нравится, вот только что, она сама пока еще не знает... Машины потихоньку превращаются в людей!

P.S. С ошибкой разобрался, но ситуация прикольная!

Показать полностью 1
23

Как искать работу джуном c++?

Собственно, сабж. Ищу советов и дельных комментариев к ситуации.

Итак.

Некоторое время назад решил сменить сферу деятельности и перейти в IT, благо, небольшой багаж был. В процессе просмотра вакансий и разъездов по интервью выяснил, кто непосредственно позиций для джунов нигде нет. Под джуновским уровнем я понимаю учебник Прата + Программирование Под Win95 + Программирование на С++ для профессионалов + всякие базы вроде алгоритмов и с.д. Везде требуется дополнительный стек, и часто уникальный (от подразделов буста, до всячески рестов и т.д.)

Что в таком случае делать? Есть ли стратегия прокачки?

И вообще - актуально ли сейчас искать по c++? Или лучше уж переходить на java?

Спасибо.

4

Реализуем числа Фибоначчи на Си, по простому о сложном...               Машинное Обучение.

Внимание: Видео на английском языке, но изъяснения вполне понятны и ясны.

Начинаем с простых правил и заканчиваем более сложными моментами.

Отличная работа, все прочитано!