1102

Курсы создания компьютерных игр на C/C++ ( Часть 10 )

Эту часть можно считать некой переходной чертой, экзаменом для перехода из "самых-самых начинающих программистов" в "программистов-падаванов" :)


Демка, Исходники и Текстура-Атлас:

https://drive.google.com/file/d/0B-jUIcoflGh7cEV5c3FaeHdmeGc...


Ссылки на все части курса:

Часть 0 - http://pikabu.ru/story/kursyi_sozdaniya_kompyuternyikh_igr_n...

Часть 1 - http://pikabu.ru/story/kursyi_sozdaniya_kompyuternyikh_igr_n...

Часть 2 - http://pikabu.ru/story/kursyi_sozdaniya_kompyuternyikh_igr_n...

Часть 2.5 - http://pikabu.ru/story/kursyi_sozdaniya_kompyuternyikh_igr_n...

Часть 3 - http://pikabu.ru/story/kursyi_sozdaniya_kompyuternyikh_igr_n...

Часть 4 - http://pikabu.ru/story/kursyi_sozdaniya_kompyuternyikh_igr_n...

Часть 5 - http://pikabu.ru/story/kursyi_sozdaniya_kompyuternyikh_igr_n...

Часть 5.5 - http://pikabu.ru/story/kursyi_sozdaniya_kompyuternyikh_igr_n...

Часть 6 - http://pikabu.ru/story/kursyi_sozdaniya_kompyuternyikh_igr_n...

Часть 6.2 -http://pikabu.ru/story/kursyi_sozdaniya_kompyuternyikh_igr_n...

Часть 7 - http://pikabu.ru/story/kursyi_sozdaniya_kompyuternyikh_igr_n...

Часть 7.2 - http://pikabu.ru/story/kursyi_sozdaniya_kompyuternyikh_igr_n...

Часть 8 - http://pikabu.ru/story/kursyi_sozdaniya_kompyuternyikh_igr_n...

Часть 9 - http://pikabu.ru/story/kursyi_sozdaniya_kompyuternyikh_igr_n...

Часть 9.2 - http://pikabu.ru/story/kursyi_sozdaniya_kompyuternyikh_igr_n...

Курсы создания компьютерных игр на C/C++ ( Часть 10 ) Программирование, Курсы программирования, Урок, Обучение, Длиннопост, C++, Компьютерные игры, C++gamedev

Дубликаты не найдены

+19

Демка, Исходники и Текстура-Атлас:

https://drive.google.com/file/d/0B-jUIcoflGh7cEV5c3FaeHdmeGc...

раскрыть ветку 31
+10

А почему нельзя использовать bitbucket или github? так будет удобнее и через коммиты можно будет увидеть что за урок было добавлено

раскрыть ветку 15
+5

Тогда придётся объяснять как им пользоваться. 

раскрыть ветку 12
0

"Демка, Исходники и Текстура-Атлас"

раскрыть ветку 1
+1

Можешь скинуть, пожалуйста, с прикрученным интерфейсом? хп игроков, базы

раскрыть ветку 4
раскрыть ветку 3
+1

Доброго времени суток. Скажите пожалуйста, а постов больше не будет?

раскрыть ветку 2
+1
Зависит от моего свободного времени )) Сейчас у меня геймдев-стартап и свободного времени, увы, нет :)
раскрыть ветку 1
+1

черт, я в первом твоем уроке писал: Да ну, Пикабу не лучшее место для таких туторов, да и еще загнешься на 4-5 уроке, как многие. Что ж, у тебя их более 10 теперь. Поздравляю, что смог ;)

раскрыть ветку 6
+3
Спасибо :))
раскрыть ветку 5
+8

Титанический труд! уважение автору !)

+6

Ура! Дождался! =)

раскрыть ветку 12
+1
Всегда хотелось попробовать сделать что-нибудь самому, а не тупо листать ленту или копировать чужое.Ура!Я Дождался!=)
раскрыть ветку 11
0

На то это и курсы, дабы научится хорошо кодить, нужно учится у тех, кто понимает, а не пытаться самому освоить программирование, без литературы и некоторых ресурсов, или я не прав?

раскрыть ветку 10
+11

*как я вижу подобные гайды для большинства людей...

Иллюстрация к комментарию
+2

"Выполняю" уроки режиме зрителя(не вступая в дискусию и не выкладывая экзешники и код) уже давно и прежде всего спасибо @Dansken за ваш труд.

В данный момент у меня есть два вопроса. Я знаю, что это скорее практика, чем уроки, но все-таки.

1. У меня проблема с указателями. Я в общих чертах понимаю, что такое указатель. Но как, где и когда его использовать не понимаю. Проблема скорее всего лежит глубоко в основах "информатики".

2. У меня не получается вывести текст. Создаю sf::Font Font и всё солюшн не компилируется, выдавая мне 17 ошибок(Скрин). 

P.S. Заметил, что при закрытии окна, приложение не закрывается.(Висит в процессах) Возможно я что-то пропустил, но скорее всего это связано с тем, что m_renderWindow->close() не закрывает консольное приложение, а закрывает только окно. Решил проблему добавлением m_isGameActive = false после m_renderWindow->close();

Иллюстрация к комментарию
Иллюстрация к комментарию
Иллюстрация к комментарию
раскрыть ветку 10
+2
Скрины зачот :)


P.S. Там же в Game::loop нужно было добавить:

if( !m_renderWindow->isOpen() )

  return false;

Что завершит работу приложения :) Проверь :)

раскрыть ветку 1
+1

Да, действительно проглядел, спасибо :)

+2
Ммм...Со вторым я разобрался. Я просто глупый и не подключил freetype.lib
раскрыть ветку 1
+2

Нужно просто понять, что "адрес памяти" и "указатель" - это в принципе одно и тоже :)

Поэтому работа с указателями нужна:


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


2. При работе с массивами. Массив в С++ фактически сам неявно является указателем. Указателем на первый элемент массива. :)

char arr[15];

// arr - указатель на первый элемент массива

// &arr[0] - указатель на первый элемент массива

// arr[0] - разыменование указателя со смещением в 0 char

// arr[1] - разыменование указателя со смещением в 1 char

Тоже очень важно понять это :)


3. Если нужно работать с динамическими объектами и динамическими массивами. Операторы new и delete работают только с указателями.

+1

Привет, можешь скинуть рабочую прогу, пожалуйста, не могу прикрутить панель правую.

раскрыть ветку 4
+1

Привет, к сожалению, все проекты остались на сгоревшем харде :(

раскрыть ветку 3
+1

Использовать, когда динамическое выделение памяти. Тоесть, когда в ходе программы нужно выделить место под переменную, или может случиться, что не нужно. Указатель просто лежит и ждет. Места-то он занимает меньше, чем целая переменная.

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

Также передавать массивы в функции можно по указателю. И переменные тоже.

+2

Единственное что, я не понимаю зачем писать программу на С++ в стилистике С. Это запутывает.

+2

Спасибо тебе, добрый человек, наконец смогу применить знания для практики создания игр))

+1

Наконец-то доделал рендер к ДЗ прошлой части и ко всем танчикам в целом. Нового контента не добавлял, только вешал текстуры на старый. Однако теперь появилась возможность в любой момент выбирать лвл нажатиями цифр 1-4 (по лвлам соотвественно). Как мог нарисовал босса и исправил некоторые ошибки. Консоль скрывал не вашей командой, т.к. она не работала на Dev c++, а может еще из-за чего, в общем в начале игры я её просто прячу, а если закрывать графическое окно, консоль тоже исчезает т.к. m_isGameActive становится равен false. В файле по ссылке находятся exeшник и динамические библиотеки, т.к. опять же я не разобрался как в Dev c++ переключить использования библиотек на статичные. Думаю следующим заданием полностью переделаю код кораблика из позапрошлой части, попытаюсь сделать его код с помощью объектов, как в танках и нарисую какие нибудь текстуры. С разрешением не в 25х80 и новыми знаниями можно будет добавить много всякого контента.

Ссылка на файл с exe (управление в игре не поменялось, ничего нового, кроме смены уровней не добавлялось, поэтому мануала не будет) - https://yadi.sk/d/ZIQ7UlFB5wPkrQ

раскрыть ветку 5
+1

Как всегда - крайне достойно! Спасибо за крутое ДЗ! :) И торжественно поздравляю с завершением Курса! ;) Надеюсь, что было интересно, познавательно и чем-то да поможет в дальнейшей жизни! :D
P.S. Будут еще работы по теме курса - можешь выкладывать, с радостью посмотрю и поиграю :)

Иллюстрация к комментарию
раскрыть ветку 4
+1

Спасибо, но у меня возникла пара вопросов.


1. В классе game мы выделяем массив для классов GameObject (родительский класс), однако помещаем туда еще и классы-наследники. Как они помещаются в массив для класса родителя? Я думал что размер массива изначально фиксирован, или с классами это по другому работает?

2.Планируете ли вы продолжать уроки?

раскрыть ветку 3
+1

Автор,вы живы?Благодарю вас за уроки,сильно помогло в изучении языка,надеюсь будут еще уроки?хочется более детального разбора примеров по типу 8го урока и планирования игры(планирование классов и т.д)

раскрыть ветку 1
+1

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

Иллюстрация к комментарию
+1

2018 Год, Tinaynox , как там твой проект? Мы ждем туториалов.

раскрыть ветку 3
0
Та вот только сегодня ночью выкатили версию 0.3.4... А нужно дождаться версии 1.0.0.. Но если интересно, то может смогу сделать туториальные обзоры на интересные механики в этой игре :)
P.S. То чувство, когда пилишь свою собственную MMOARPG.. Правда пока без корованов :)
Иллюстрация к комментарию
раскрыть ветку 2
+1

Фух, ты жив. Хочу обрадовать тем, что ты вырастил еще одного конкурента в области GameDev. Спасибо за уроки, аналогов которым нету в русскоязычном инете. И пусть все трындят про сложность. Для меня, школяра, умеющего писать функции на C++ до 8 урока все зашло как по маслу, да и сейчас после танчиков кажись разобрался в основах ООП. Я конечно понимаю, что это только начало начал, но я думаю это есть самая сложная часть - понять основу, что я и сделал благодаря твоим туториалам. Короче успехов твоему проекту, как гитаристу саундтреки игрушки греют сердце, как станет скучно, ждем туториалов.

раскрыть ветку 1
+1

На этом туторы как бы всё?(

раскрыть ветку 5
0

На каком "этом"? :)

раскрыть ветку 4
+1

Ну в смысле "Часть 10" последняя? Просто давно обновлений не было, что очень печалит( Хорошие туторы были

раскрыть ветку 3
+1

Привет, не мог бы пожалуйста скинуть хорошую проверку на коллизию и ответ на нее?

Идейно мне идеально подходит swept AABB, но я делал ее по этой ссылке, и она как то криво работает :/

https://www.gamedev.net/articles/programming/general-and-gam...

Можешь посоветовать что нибудь хорошее?
Требования:

2d, AABB (большего не надо), но чтобы не проскакивало, и чтобы отзыв был реалистичным (т.е. в идеале как по ссылке выше: возвращается время коллизии, и я просто использую его как время, которое спрайт двигался)

раскрыть ветку 1
+1

Привет! Не знаю даже, кроме Box2D не приходилось использовать другой 2D-физики :)

+1

Все, я закончил. Там папка со всем, что нужно к игре.
https://wdfiles.ru/97tN
Ну и по геймдизайну я ничего не делал особого. Там один уровень на 20 врагов. Бонусов и босса не делал, потому что текстур под мою механику нет, а сам рисовать я не особо умею. Так что игра не особо интересная получилась, но главное, что я более-менее изучил основы SFML и смог сделать что-то. Возможные мелкие баги, которые я не заметил, но вроде все нормально.

раскрыть ветку 1
0
Очень неплохо вышло :) Молодцом :)
+1

В общем листал комменты (может до меня уже спросили) - не нашел. @Dansken, у меня к вам большая просьба: скажите, где можно почитать более подробно о создании/использовании библиотек lib, dll и прочего? Желательно на русском языке. А ещё более желательно (но скорее всего наименее осуществимо, поскольку я понимаю, что на это уйдёт огромное количество вашего времени) чтобы вы сделали отдельный пост (но это уже из области фантастики).

Просто сейчас пытаюсь освоить создание/подключение/использование библиотек для использования в своих проектах opengl, sfml, opencv и прочее, но пока получается очень плохо: тыкаюсь вслепую, допускаю идиотские ошибки (например вчера, долго думал почему при присоединении библиотеки возникают ошибки, только сегодня случайно на stackoverflow нашёл ответ: я смешал релизную библиотеку с дебажным проектом.

Пробовал искать на просторах, но там написано крайне мало (возможно я плохо искал). В общем, если у вас будет время, пожалуйста, помогите мне с этим вопросом.

раскрыть ветку 3
+1
Ну какого-то подробного мануала я не встречал :) Если конкретные вопросы будут, то стучи в скайп - danskendan, помогу чем смогу :)
раскрыть ветку 2
+1

Великий человек, вы будете продолжать подобное? Я благодаря вам на работу устроился xD. 10 лет назад учился на все это, но спустя 10 лет ничерта уже не помнил, а тут такой интересный "полет", что все быстро и интересно прошло. Причем много полезного в основе, что потом обрасло литературой. В итоге за менее чем месяц благодаря этим урокам все вышло вперед.

Вот и спрашиваю: дальше будет что-то? =)

раскрыть ветку 1
+1

Слушай, что надо знать и уметь чтобы вообще думать о идти на фриланс (хотя бы за копейку) работать? Просто не знаю что читать, в итоге просиживаю штаны :/

раскрыть ветку 1
+2

PHP =))

+1

Доброго времени суток уважаемый Dansken, если это возможно, хотел бы узнать ваше авторитетное мнение, с чего можно начать погружаться в программирование, какую литературу читать, какие сайты посещать новичку для изучения с нуля? в данный момент больше всего интересует веб программирование, создание сайтов, хотя в целом хотелось бы знать если не всё, то очень многое.

раскрыть ветку 3
+3

Извиняюсь что вмешиваюсь, не являясь адресантом вашого комментария.
Начинать погружаться можно с чего угодно, главное начать. Невесть через какие тернии, но к чему-то придти всегда можно, если что-то делать.


Если интересует веб, то по javaScript вот неплохой ресурс http://learn.javascript.ru/ .

Если просто попробовать программирование, то с нуля приятно учить Python. Информации в интернете море, за пару минут гугла можно откопать что-то вроде такого пособия для новичка http://younglinux.info/sites/default/files/python_structured... . Да и вообще по любому языку практически можно найти много всего.

Тот же C++ можно попробовать по уроках ТСа. Вроде просто объяснены основы языка и немножечко больше, чем основы. Просто и с интересными примерами.

раскрыть ветку 2
+1

Это очень хорошо, что вмешиваетесь, спасибо за советы и ссылки, всё учту и начну пробовать разбираться и изучать.

раскрыть ветку 1
+1

Расскажи, пожалуйста, о файлах. Какие расширения используются для сохранения, например, уровней. Ибо прописывать уровни в коде как то... не то, хотелось бы все в файлики, так красивше. Ну и потоки эти, которые у меня работают через раз (аррргх), для работы с файлами.

раскрыть ветку 1
+1
Окааай :) Будет учтено ;)
+1

Можно поинтересоваться о том, какова тема следующего поста? Будет ли создание мультиплеерных, взаимодействующих с сервером игр? За старание огромный +. Сам уже давно постигаю мир GameDev'a, но статьи действительно полезны.

раскрыть ветку 3
+2

Пока только примерно прикидываю план на ближайшие длиннопосты-игры... :)

Из того, что будет в ближайших постах - это кусочек STL, спрайтовая анимация, вьюпорт/камера, математика в играх :)

А там дальше - видно будет, может и доберемся когда-нибудь до мультиплеера :))

+1

С мультиплеером все очень легко. Особенно используя SFML.

Что есть минимальная единица информации? Любые данные можно преобразовывать в char (1 байт), передавать по протоколу tcp, и там обратно преобразовывать в то- что нужно. Создав простенький чатик, после простейшую передачу файла по tcp, вам будет сразу понятно, что к чему с этим "итнернетом", и не только мультиплеер реализуете)

+1
Лойс к мультиплееру. Хотя, это тема не одного поста (в таком темпе), ибо реалтайм в несколько лиц без ногопоточности здесь никак. Хотя, возможно, можно слепить "красный" длиннопост, для продвинутых.
+1

Visual studia весит 9гб, у меня нету столько места, может можно скачать только компилятор или типа того? 

раскрыть ветку 1
+2

Хм, по-идее она весит 2гб :) Если Community 2013

+1

Такой вопрос появился, на этапе отрисовки стен, у меня вместо экрана со стенами, просто темный экран как в первом скрине примере после подключения SFML.


Если вопрос задан коряво, то прошу прощения, не знаю как его точно сформулировать

раскрыть ветку 13
+2

Хм, где-то ошибка, нужно искать :) Попробуй поставить точку останова в GameObject::render и посмотреть попадаешь ли туда :)

раскрыть ветку 12
+1

Опять дурацкий вопрос, подключение boost не конфликтует же с SFML? 

И еще дурацкий вопрос, можно ли как-то сохранить настройки проекта, типа сделать их по умолчанию? А не подключать каждый раз SFML?

раскрыть ветку 9
+1

А все, просто кривожопо в Level.h все написал) исправил и заработало)

+1

Мда, доделал до конца урок, теперь танки и база есть, но пуль и стен все равно нет(

+1

Скажите, а как реализуется вставка в программу аудиофайлов? Тоже с помощью определенных библиотек?

раскрыть ветку 5
+3
Ну SFML audio умеет с ними работать :)

Нужно его подключить и дальше вот например маленький мануальчик есть на англицком:

http://www.sfml-dev.org/tutorials/2.0/audio-sounds.php

или вот что-то на русском:

http://kychka-pc.ru/sfml/urok-29-sfml-c-zvuki-i-muzyka.html

раскрыть ветку 1
+1

Спасибо большое!

+2

SFML\SDL и все остальные фреймворки работают по одному принпицу

1. Открыть файл и загрузить его в буфер(кеш)

2. Играть его(звук), отрисовать на экране(видео\картинка)

раскрыть ветку 2
+1

То есть, с помощью SFML можна и видео вывести?

раскрыть ветку 1
+1

Ооо, вот это крутяк! Автору респект! почему я раньше не видел эти статьи?

+1

Большое спасибо автору за его курс. Сегодня приедет книга С. Прата, даже предположить не мог что на старости лет захочу вот так провести новогодние :)


Может найдутся желающие стать наставником? Подсказать где-то если застряну

раскрыть ветку 4
+4
Скайп: danskendan, если что :)
раскрыть ветку 2
+1

и я, и я хочу спрашивать) можно если что?

раскрыть ветку 1
+1

Обращайся :)

+1

фолыч?

+1

Ну наконец, а то чёт даже переживать начал.

+1
Уважаемый автор, есть на яву и андроид или может будет пост?
раскрыть ветку 11
+2

Не ява, а джава. Ява - мотоцикл который у деда в селе стоял.

раскрыть ветку 5
+1
И пачка сигарет
раскрыть ветку 3
+1
И остров в тихом океане
+1

Если интересует вообще программирование под андроид: http://startandroid.ru/ru/

раскрыть ветку 1
+1
Спасибо. Пошел.может есть для Явы хорошая штука? Для начинающих.
+1

Если вас просто интересует создание игр на андроид, то можете попробовать технологию Adobe AIR.

+1
Сожалею, не будет :)
раскрыть ветку 1
0
А в чем проблема? Бери кокос и собирай под ведро, зачем тебе этот сфмл?
+1

Огромное спасибище тебе за твой труд!

+1

А вот моя криворукая версия с бонусами, тупым боссом, менюшкой, и багами.
https://drive.google.com/file/d/0B5aM6phDmvQMWmJubjhIY3JOS3c/view?usp=sharing

раскрыть ветку 6
+2

а теперь по пунктам:

1) GUI реализовано жуткой функцией которая принимает текст, кол-во значков, изображение значка и его цвет, и собственно его выводит более менее приемлимо
2) бонусы спавнятся из-за обьекта BonusSpawner, который раз в н секунд собственно его спавнит, и ждёт пока игрок его не подберет.

а) заморозка: у врагов появляется переменная bool m_frozen которая при поднятии бонуса меняет своё значение(с помощью функции в обьекте Game), меняет его сама через н секунд, и пока активна не даёт двигатся танкам. 

б) бомба: активирует функцию обьекта Game, которая каждому вражескому танку устанавливает здоровье в 0

в) здоровье: добавляет обьекту поднявшему бонус 3 здоровья
г) апгрейд: добавляет обьекту поднявшему бонус 1 уровень, которые реализованы через изменение стандартных значений - скорости передвижения, скорости атаки, скорости полета пуль и их урон, последние 2 реализованы изменением старого обьекта пуль - им добавлены урон, и коэффициент скорости полёта

д) защита: при поднятии бонус становится невидимым, у базы устанавливает значение переменной m_invulnerable на истину, через 15 секунд возвращает значение переменной обратно, самоуничтожаясь
е) неуязвимость: абсолютно идентично защите, только вместо базы значение меняется у поднявшего бонус танка
Враги поднимать бонусы не могут(будут проезжать сквозь них), пули так же их не замечают
3) Босс: просто огромная бандура размерами 5*5, которая плодит маленькие танки, и наносит удвоенный урон своими медленными пулями.

раскрыть ветку 5
+1
Ха! Супер ))))

P.S. Но для меня - слишком просто =P

раскрыть ветку 4
+1

Fallout... Я заплачу. Кто-то помнииит...

0

как нарисовать, мать её, сову

0

Потом как нить прочту всё, может что и получится. А коммент так оставляю, чтобы не потерять пост, так что спокойно минусите

раскрыть ветку 2
+3
Под постом есть кнопочка "сохранить";)
раскрыть ветку 1
+1
Я каждый день посты сохраняю, у меня там постов больше чем в свежем))
0

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

Сколько раз пытался применить классы в каком нибудь простом проекте, ничего не выходит. Или получается бред или появляются лаги (при выводе графики с помощью OpenGL)

Что я делаю не так?

Интересует больше всего вопрос быстродействия, что будет быстрее, программа на С, С++ или C#?

раскрыть ветку 21
+3

C#(java) работает на машине, то есть мы получаем байт код, который исполняется на машине(значит больше ресурсов, а быстродействие хуже). С++ более развитый С, но если к примеру взять чисто линейную программу, без функций(процедур) и тд, то мы выиграем в быстродействии, но потеряем читаемость кода, уже после 150 строк. ООП позволяет избежать этой проблемы, так же позволяет использовать уже существующий код в дальнейшем(читайте принципы ООП).

раскрыть ветку 10
0

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

ООП хорошо подходит для некоторых областей таких как UI, игры, симуляции, но есть области где ООП плохо подходит

раскрыть ветку 9
+2

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

И да, программа на шарпе всегда в первый свой запуск работает медленнее.

+1

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

раскрыть ветку 4
0

Я пытался читать и править uboot и ядро линукса и не помню там никаких классов.

Хотя, казалось бы, сложная и большая штука.

раскрыть ветку 3
-1

При прочих равных, программа на С будет быстрее

раскрыть ветку 3
+2

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

+1

если ты на С++ напишешь в С стиле и скомпилируешь С++ компилятором от этого программа станет медленнее?

раскрыть ветку 1
Похожие посты
Возможно, вас заинтересуют другие посты по тегам: