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

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

12
Почему не удалить указатель на NULL?
Мне всегда было интересно, почему автоматическая установка указателя на NULL после удаления не входит в стандарт. Если об этом позаботиться, то многих сбоев из-за неправильного указателя не произойдет. Но, сказав это, я могу придумать пару причин, по которым стандарт ограничил бы это: Производительность: Дополнительная инструкция может снизить deleteпроизводительность. Может быть, …

7
Что произойдет, если я определю массив нулевого размера в C / C ++?
Просто любопытно, что на самом деле произойдет, если я определю int array[0];в коде массив нулевой длины ? GCC вообще не жалуется. Пример программы #include <stdio.h> int main() { int arr[0]; return 0; } осветление На самом деле я пытаюсь выяснить, оптимизированы ли массивы нулевой длины, инициализированные таким образом, вместо того, …
127 c++  c  arrays 

1
Лучшее средство форматирования / украшения кода C ++
Заблокировано . Этот вопрос и ответы на него заблокированы, потому что вопрос не по теме, но имеет историческое значение. В настоящее время он не принимает новые ответы или взаимодействия. Существует множество инструментов для форматирования исходного кода. Какие из них лучше всего подходят для C ++? Меня интересуют инструменты командной строки …


3
Условия для автоматического создания оператора по умолчанию / копирования / перемещения и оператора присваивания копирования / перемещения?
Я хочу освежить свою память об условиях, при которых компилятор обычно автоматически генерирует конструктор по умолчанию, конструктор копирования и оператор присваивания. Я припоминаю, что были некоторые правила, но я не помню, а также не могу найти авторитетный ресурс в Интернете. Кто-нибудь может помочь?

7
Что нужно для компиляции с / MD или / MT?
В Visual Studio есть флаги компиляции / MD и / MT, которые позволяют вам выбрать, какой тип библиотеки времени выполнения C. Я понимаю разницу в реализации, но все еще не уверен, какую из них использовать. Какие плюсы / минусы? Одно из преимуществ / MD, о котором я слышал, заключается в …

8
Есть ли способ указать, сколько символов строки нужно распечатать с помощью printf ()?
Есть ли способ указать, сколько символов строки нужно распечатать (аналогично десятичным разрядам в ints)? printf ("Here are the first 8 chars: %s\n", "A string that is more than 8 chars"); Хотел бы распечатать: Here are the first 8 chars: A string
127 c++  c  printf 

4
Когда в C ++ 11 сделать тип неподвижным?
Я был удивлен, что это не появилось в моих результатах поиска, я подумал, что кто-то спросил бы об этом раньше, учитывая полезность семантики перемещения в C ++ 11: Когда мне нужно (или это хорошая идея) сделать класс неподвижным в C ++ 11? (Причины, отличные от проблем совместимости с существующим кодом.)

1
Что происходит с глобальными и статическими переменными в разделяемой библиотеке, когда она динамически связана?
Я пытаюсь понять, что происходит, когда модули с глобальными и статическими переменными динамически связываются с приложением. Под модулями я подразумеваю каждый проект в решении (я много работаю с Visual Studio!). Эти модули либо встроены в * .lib, либо * .dll, либо в сам * .exe. Я понимаю, что двоичный файл …

12
Почему логическое значение имеет размер 1 байт, а не 1 бит?
В C ++ Почему логическое значение имеет размер 1 байт, а не 1 бит? Почему нет таких типов, как 4-битные или 2-битные целые числа? Я упускаю перечисленное выше при написании эмулятора для процессора

8
Как повторить строку переменное количество раз в C ++?
Я хочу вставить пробелы «n» (или любую строку) в начало строки в C ++. Есть ли какой-либо прямой способ сделать это, используя строки std :: strings или char *? Например, в Python вы можете просто сделать >>> "." * 5 + "lolcat" '.....lolcat'
127 c++ 

4
Что делают линкеры?
Мне всегда было интересно. Я знаю, что компиляторы преобразуют код, который вы пишете, в двоичные файлы, но что делают компоновщики? Они всегда были для меня загадкой. Я примерно понимаю, что такое «связывание». Это когда в двоичный файл добавляются ссылки на библиотеки и фреймворки. Я ничего не понимаю, кроме этого. Для …

5
Почему cout печатает «2 + 3 = 15» в этом фрагменте кода?
Почему вывод приведенной ниже программы такой? #include <iostream> using namespace std; int main(){ cout << "2+3 = " << cout << 2 + 3 << endl; } производит 2+3 = 15 вместо ожидаемого 2+3 = 5 Этот вопрос уже прошел несколько циклов закрытия / повторного открытия. Перед тем как проголосовать …
126 c++ 

9
Безопасно ли возвращать элемент из того же вектора?
vector<int> v; v.push_back(1); v.push_back(v[0]); Если второй push_back вызывает перераспределение, ссылка на первое целое число в векторе больше не будет действительной. Так это небезопасно? vector<int> v; v.push_back(1); v.reserve(v.size() + 1); v.push_back(v[0]); Это делает его безопасным?

7
Разница между типами string и char [] в C ++
Я немного знаю C, а теперь смотрю на C ++. Я привык к массивам символов для работы со строками C, но пока я смотрю код C ++, я вижу, что есть примеры, использующие как строковый тип, так и массивы char: #include <iostream> #include <string> using namespace std; int main () …
126 c++  string  types 

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