Подтвердить что ты не робот

Что на вашем читом С++?

Каждый раз так часто мне приходится переключаться между языками для большей части кода, который я пишу (будь то для работы или для игры). Я нахожу, что С++ является одним из тех языков, для которого требуется много пространства для умственного кэша, поэтому, если я отвлекусь от него, я забуду много деталей. Даже такие вещи, как добавление элементов в контейнер STL или использование ключевого слова хранения static в различных контекстах, все перемешались ( "это add, append, push... oh, it push_back" ).

Итак, какие существенные лакомые кусочки вы любите загружать в свой мозг, когда пишете С++?

Изменить: я должен сказать, что я хочу, чтобы у меня была возможность пометить эту страницу и использовать ее в качестве моей cheatsheet:)

4b9b3361

Ответ 1

Когда я переключаюсь с Java на С++, мне нравится просматривать элементы из Coding Standards Standards Хербом Саттером и Андреем Александреску.

Скотт Майерс Эффективные серии С++ отлично подходят для этого.

Вот быстрые базовые вещи, которые работают для меня:

  • Используйте std::swap()
  • "Когда вы сомневаетесь, делайте то, что делаете". (Скотт Мейерс)
  • const * означает постоянные данные, * const означает постоянный указатель (читайте декларацию назад).
  • Объявить оператор присваивания и конструктор копирования в классах с динамически назначенными данными.
  • С++ будет писать оператор присваивания и конструктор копирования для вас, если вы не объявите его самостоятельно. За исключением случаев, когда вы объявляете их (частные, скорее всего), и опускаете их определять.
  • Оператор =() возвращает ссылку на *this
  • База вызовов (rhs) в списке инициализации конструктора производных копий.
  • Вызов Base::operator=(rhs); в производном operator=()
  • Проверить назначение на себя в operator=()
  • Не выполняйте operator=(), вызывая конструктор копирования (Herb Sutter, напишите, что вы знаете, и знайте, что вы пишете)
  • Помните RAII
  • Исключение исключений по ссылке

Ответ 2

В моей cheatsheet: взаимодействия между const и указателями:

int       *       p;  // pointer
int const *       p;  // pointer to const value
int       * const p;  // const pointer
int const * const p;  // const pointer to const value

По существу, разделите объявление на символ *, и если const падает влево, то указанное значение будет const, а если оно падает вправо, то указатель сам будет const.

Ответ 3

Я сохраняю PDF файл стандарта С++ открытым. Это полезно для быстрого поиска всех интерфейсов библиотеки (в частности, интерфейсов контейнеров и файлов iostream). Это также полезно для быстрого разрешения аргументов коллег о синтаксисе и семантике С++.

Я еще не понял, как загрузить PDF в мой мозг.

Ответ 4

Так как я постоянно работаю на С++, я сохраняю большую часть синтаксиса в своей голове. Для ссылки на библиотеку я использую sgi и Josuttis ' книга. Когда я еще не закончил С++ и действительно хочу обновить, вернусь к Эффективный С++.

Когда мне нужно ответить на более глубокий вопрос, я буду ссылаться на стандартную или в книгу Страустрапа.

Когда все остальное не удается, google и stackoverflow - отличные инструменты.

Ответ 5

Реализация обратного вызова для нестатической функции члена С++

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

Ответ 6

На моем C Cheatsheet (и на С++ один по расширению), указатель на синтаксис функции.

Ответ 7

На самом деле не на чит-листе и не очень специфичен для С++, но у меня есть "Flush the buffer!". на липкой ноте, чтобы напомнить мне, что, вероятно, неправильно, когда я не получаю данные.

Ответ 8

Я держу весь сайт удобным для cheatsheets вообще:

http://www.cheat-sheets.org/#CPP

Чипсета cpp немного базовая, но STL полезен.

Ответ 9

Я использую сайт cplusplus.com. Это отличная ссылка для программирования на C и С++.

Ответ 10

Специализация шаблона. Мне всегда нужно искать это.

Ответ 11

У меня есть небольшая копия диаграммы приоритета оператора, прикрепленной к моей стене куба.

Ответ 14

Собственно, то, что меня больше всего переключает между С# и С++, является синтаксисом конструктора. (Я все время хочу использовать "новое" для всего).

Ответ 17

Доступ к Google и возможность ввода для меня достаточно.

По правде говоря, я испорчен, имея почти гарантированный доступ к сети в моей рабочей среде. В противном случае, по какой-либо причине, у меня также есть все три стандартных PDF файла.

Недостатком этого является высокий коэффициент угадывания/знания во время фактических разделов Q & A в интервью на С++. Положительным моментом является то, что я очень хорош в своей работе.: P