233

Советы падаванам C++ ( Часть 2 )

Серия Курсы создания компьютерных игр на C++

///////////////////////////////////////////////////

// Начальный курс создания компьютерных игр на C/C++

[0][1][2][2.5][3][4][5][5.5][6][6.2][7][7.2][8][9][9.2][10]

///////////////////////////////////////////////////

// Советы падаванам C++

[1]



Всем привет! :]


После первого поста количество подписчиков резко увеличилось в два раза, поэтому я решил не тянуть со вторым постом. :]

Сегодня в рубрике "Советы падаванам C++" у нас будут советы-привычки - те вещи, к которым нужно привыкнуть как можно раньше и использовать каждый день :]

Жду ваши отзывы в комментариях :]


И вот вам в тему пару весёлых картинок напоследок:

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

69 постов4.8K подписчиков

Правила сообщества

Соблюдайте правила Pikabu:

https://pikabu.ru/html.php?id=wtf


Помимо этого ЗАПРЕЩЕНО:

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

Вы смотрите срез комментариев. Показать все
1
Автор поста оценил этот комментарий

Можно подробнее про forward declaration? Не очень понял, когда и где это можно и нужно использовать.

раскрыть ветку (4)
2
Автор поста оценил этот комментарий

Forward declaration - это техника позволяющая сообщить компилятору о том, что в программе есть какой-то класс, структура или функция, не сообщая при этом о том где оно находится и как реализовано.
Для этого нужно просто описать их в одну строку как при обычном объявлении, но не давать реализации - поставить точку с запятой:
class Game;
или
struct Unit;
или
void MegaFunction( int a, float b );

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

Нужен Forward Declaration в двух случаях:
- Для того, чтобы не подключать заголовочный файл в заголовочном файле (см. пост)
- Для того, чтобы решить ситуацию с перекрестным подключением заголовочных файлов друг в друга.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Понял, спасибо. Жалею иногда, что не выбрал таки специальностью программирование, хотя хотел. Ушёл в инженеры. Сейчас малость шабашу в нерабочее время в фирме, занимаясь поддержкой старых программ для измерительных приборов и разработкой подобных новых на основе тех же принципов + иногда что-то своё, например, DirectShow немного изучил, чтобы снимать и писать с вебки, глядящей на парковку, изображение. Но по факту, вернее меня быдлокодером назвать. А ведь кучу подобных мелочей можно было бы элементарно уже знать или выучить, работая в нормальной фирме в команде.

1
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Не совсем :) Просто мы запоминаем в уме, что у нас где-то будет Class2 :) Типа заглушка "Это будет Class2".

На этапе линковки эта заглушка и сам класс связываются. ( Отсюда и название операции Linking - Связывание )

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества