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

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

12
Никогда раньше не видел C ++ для цикла
Я конвертировал алгоритм C ++ в C #. Я наткнулся на это для цикла: for (u = b.size(), v = b.back(); u--; v = p[v]) b[u] = v; Это не дает ошибки в C ++, но в C # (не может преобразовать int в bool). Я действительно не могу понять …
164 c#  c++  for-loop 

5
Почему я не могу объявить класс в пространстве имен, используя двойные двоеточия?
class Namespace::Class; Зачем мне это делать? namespace Namespace { class Class; } Используя VC ++ 8.0, компилятор выдает: ошибка C2653: «Пространство имен»: это не имя класса или пространства имен Я предполагаю, что проблема здесь в том, что компилятор не может определить, Namespaceявляется ли класс или пространство имен? Но почему это …
164 c++  namespaces 

10
Как исправить файл .pch, отсутствующий при сборке?
Когда я собираю свое решение c ++ в Visual Studio, он жалуется на отсутствие файла xxxxx.pch. Есть ли параметр, который мне не хватает, чтобы вернуть предварительно скомпилированные заголовки? Вот точная ошибка для полноты: Error 1 fatal error C1083: Cannot open precompiled header file: 'Debug\xxxxx.pch': No such file or directory

6
Могут ли виртуальные функции иметь параметры по умолчанию?
Если я объявляю базовый класс (или интерфейсный класс) и указываю значение по умолчанию для одного или нескольких его параметров, должны ли производные классы указывать те же значения по умолчанию, а если нет, то какие значения по умолчанию будут проявляться в производных классах? Приложение: меня также интересует, как это можно обрабатывать …
164 c++  c++11  c++03 

3
В примере Страуструпа, что означает двоеточие в «возврате 1: 2»?
Я не понимаю одно конкретное использование толстой кишки. Я нашел его в книге Бьярна Страуструпа « Язык программирования C ++ », 4-е издание, раздел 11.4.4 «Звони и возвращайся», стр. 297: void g(double y) { [&]{ f(y); } // return type is void auto z1 = [=](int x){ return x+y; } …
163 c++  syntax 

13
Является ли D надежной альтернативой Java и C ++? [закрыто]
В настоящее время этот вопрос не очень подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, вызовет дебаты, споры, опрос или расширенное обсуждение. Если вы считаете, что этот вопрос можно улучшить и, возможно, вновь открыть, обратитесь за …
163 java  c++  c  d 

7
Каковы преимущества использования nullptr?
Этот фрагмент кода концептуально делает то же самое для трех указателей (безопасная инициализация указателя): int* p1 = nullptr; int* p2 = NULL; int* p3 = 0; Итак, каковы преимущества назначения указателей nullptrперед присвоением им значений NULLили 0?
163 c++  c++11  null  c++-faq  nullptr 


8
В чем разница между istringstream, ostringstream и stringstream? / Почему бы не использовать stringstream в каждом случае?
Когда я буду использовать std::istringstream, std::ostringstreamи std::stringstreamпочему я не должен просто использовать std::stringstreamв каждом сценарии (есть ли проблемы с производительностью во время выполнения?). Наконец, есть ли что-то плохое в этом (вместо того, чтобы использовать поток вообще): std::string stHehe("Hello "); stHehe += "stackoverflow.com"; stHehe += "!";

4
Автоматически добавлять все файлы в папке к цели с помощью CMake?
Я рассматриваю возможность переключения кроссплатформенного проекта с отдельных систем управления сборками в Visual C ++, XCode и make-файлах на CMake. Одна важная функция, которая мне нужна, - это автоматическое добавление всех файлов в каталоге к цели. Хотя это легко сделать с помощью make, это нелегко сделать с помощью Visual C …

8
Лучше использовать std :: memcpy () или std :: copy () с точки зрения производительности?
Лучше использовать, memcpyкак показано ниже, или лучше с std::copy()точки зрения производительности? Зачем? char *bits = NULL; ... bits = new (std::nothrow) char[((int *) copyMe->bits)[0]]; if (bits == NULL) { cout << "ERROR Not enough memory.\n"; exit(1); } memcpy (bits, copyMe->bits, ((int *) copyMe->bits)[0]);

3
Почему преобразование из строковой константы в 'char *' допустимо в C, но недопустимо в C ++
Стандарт C ++ 11 (ISO / IEC 14882: 2011) гласит § C.1.1: char* p = "abc"; // valid in C, invalid in C++ Для C ++ все нормально, так как указатель на строковый литерал вреден, поскольку любая попытка его изменить приводит к сбою. Но почему это действительно в C? C …
163 c++  c  string  c++11  char 

10
Должен ли я хранить целые объекты или указатели на объекты в контейнерах?
Проектирование новой системы с нуля. Я буду использовать STL для хранения списков и карт определенных долгоживущих объектов. Вопрос: Должен ли я гарантировать, что мои объекты имеют конструкторы копирования и хранят копии объектов в моих контейнерах STL, или лучше вообще управлять жизнью и областью действия и просто хранить указатели на эти …
162 c++  stl  pointers 

5
Почему этот цикл выдает «предупреждение: итерация 3u вызывает неопределенное поведение» и выводит более 4 строк?
Компилируя это: #include <iostream> int main() { for (int i = 0; i < 4; ++i) std::cout << i*1000000000 << std::endl; } и gccвыдает следующее предупреждение: warning: iteration 3u invokes undefined behavior [-Waggressive-loop-optimizations] std::cout << i*1000000000 << std::endl; ^ Я понимаю, что есть целочисленное переполнение со знаком. Чего я не …

1
Что такое string_view?
string_viewбыла предложена особенность в рамках Основ библиотеки C ++ TS ( N3921 ), добавленная в C ++ 17 Насколько я понимаю, это тип, который представляет какую-то строковую «концепцию», которая представляет собой вид любого типа контейнера, который может хранить что-то видимое в виде строки. Это правильно ? Должен ли канонический const …

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