Вопросы с тегом «c++»

C ++ - это язык программирования общего назначения. Первоначально он был разработан как расширение C и имеет аналогичный синтаксис, но теперь это совершенно другой язык. Используйте этот тег для вопросов о коде (который будет скомпилирован с помощью компилятора C ++). Используйте тег, зависящий от версии, для вопросов, связанных с конкретной редакцией стандарта [C ++ 11], [C ++ 14], [C ++ 17] или [C ++ 20] и т. Д.

5
C ++ эквивалент ToString Java?
Я хотел бы контролировать то, что записывается в поток, т. Е. coutДля объекта пользовательского класса. Это возможно в C ++? В Java вы можете переопределить toString()метод для аналогичной цели.
151 c++ 

2
Каковы некоторые виды использования decltype (auto)?
На этот вопрос есть ответы на Stack Overflow на русском : Конструкция decltype (авто) В c ++ 14 decltype(auto)введена идиома. Обычно его используют для того, чтобы autoобъявления могли использовать decltypeправила для данного выражения . В поисках примеров «хорошего» использования идиомы я могу думать только о таких вещах, как ( Скотт …

4
В CMake, как я могу проверить, является ли компилятор Clang?
У нас есть набор межплатформенных сценариев сборки CMake , и мы поддерживаем сборку с помощью Visual C ++ и GCC . Мы пробуем Clang , но я не могу понять, как проверить, является ли компилятор Clang с нашим сценарием CMake. Что я должен проверить, чтобы увидеть, является ли компилятор Clang …
151 c++  c  cmake  clang 


4
Аргументы шаблона по умолчанию
Если мне разрешено делать следующее: template <typename T = int> class Foo{ }; Почему мне не разрешено делать следующее в основном? Foo me; Но я должен указать следующее: Foo<int> me; C ++ 11 представил аргументы шаблона по умолчанию, и сейчас они не совсем понятны.
151 c++  templates 

4
Выбор между vector :: resize () и vector :: reserve ()
Я предварительно выделяю память для моей vectorпеременной-члена. Ниже код минимальная часть class A { vector<string> t_Names; public: A () : t_Names(1000) {} }; Теперь в какой-то момент времени, если t_Names.size()равен 1000. Я намерен увеличить размер на 100. Затем, если оно достигнет 1100, снова увеличьте на 100и так далее. У меня …
151 c++  vector 

7
Ключевое слово C ++ auto. Почему это волшебство?
Из всего материала, который я использовал для изучения C ++, autoвсегда был странный спецификатор продолжительности хранения, который не служил никакой цели. Но совсем недавно я столкнулся с кодом, который использовал его как имя типа само по себе. Я из любопытства попробовал, и он предполагает тот тип, который я ему назначил! …
151 c++  types  c++11  auto 

3
Объявление друга в C ++ - разница между публичным и частным
Есть ли разница между объявлением функции / класса друга как частной или публичной? Я не могу найти ничего об этом в Интернете. Я имею в виду разницу между: class A { public: friend class B; }; а также class A { private: //or nothing as the default is private friend …
151 c++  private  friend  public 

5
Какой смысл g ++ -Worder?
Опция g ++ -Wall включает в себя -Wreorder. Что эта опция делает, описано ниже. Для меня не очевидно, почему кого-то это волнует (особенно достаточно, чтобы включить это по умолчанию в -Wall). -Заказ (только C ++) Предупреждать, когда порядок инициализаторов членов, указанный в коде, не соответствовать порядку, в котором они должны …

5
Какие компиляторы C ++, если таковые имеются, выполняют оптимизацию хвостовой рекурсии?
Мне кажется, что было бы идеально работать для оптимизации хвостовой рекурсии как в C, так и в C ++, но при отладке я никогда не вижу стека фреймов, который указывает на эту оптимизацию. Это хорошо, потому что стек говорит мне, насколько глубока рекурсия. Тем не менее, оптимизация тоже была бы …

18
Является ли хорошей практикой обнулять указатель после его удаления?
Я начну с того, что использую умные указатели, и вам никогда не придется об этом беспокоиться. Какие проблемы со следующим кодом? Foo * p = new Foo; // (use p) delete p; p = NULL; Это было вызвано ответом и комментариями к другому вопросу. Один комментарий от Нила Баттерворта вызвал …

24
Как объединить несколько строк C ++ в одну строку?
C # имеет функцию синтаксиса, где вы можете объединить много типов данных в одну строку. string s = new String(); s += "Hello world, " + myInt + niceToSeeYouString; s += someChar1 + interestingDecimal + someChar2; Что было бы эквивалентно в C ++? Насколько я вижу, вам придется делать все …

19
Почему типы всегда имеют определенный размер независимо от его значения?
Реализации могут отличаться между фактическими размерами типов, но на большинстве типов, таких как unsigned int и float, всегда 4 байта. Но почему тип всегда занимает определенный объем памяти независимо от его значения? Например, если я создал следующее целое число со значением 255 int myInt = 255; Тогда myIntбы занимал 4 …
149 c++ 

12
Почему x [0]! = X [0] [0]! = X [0] [0] [0]?
Я немного изучаю C ++ и борюсь с указателями. Я понимаю, что я могу иметь 3 уровня указателей, объявив: int *(*x)[5]; так что *xэто указатель на массив из 5 элементов, на которые есть указатели int. Кроме того, я знаю , что x[0] = *(x+0);, x[1] = *(x+1)и так далее .... …
149 c++  c  arrays  pointers 

17
Какой смысл в константных указателях?
Я не говорю об указателях на константные значения, а о самих константных указателях. Я изучаю C и C ++ за пределами самых базовых вещей, и до сегодняшнего дня я понял, что указатели передаются по значению функциям, что имеет смысл. Это означает, что внутри функции я могу заставить скопированный указатель указывать …
149 c++  c  pointers  const 

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.