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

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

2
Запрет функции, принимающей const std :: string & от принятия 0
Стоит тысячи слов: #include<string> #include<iostream> class SayWhat { public: SayWhat& operator[](const std::string& s) { std::cout<<"here\n"; // To make sure we fail on function entry std::cout<<s<<"\n"; return *this; } }; int main() { SayWhat ohNo; // ohNo[1]; // Does not compile. Logic prevails. ohNo[0]; // you didn't! this compiles. return 0; …

14
Почему следует избегать кастинга? [закрыто]
Закрыто . Этот вопрос должен быть более конкретным . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он фокусировался только на одной проблеме, отредактировав этот пост . Закрыт 4 года назад . Уточните этот вопрос Я обычно стараюсь избегать типов приведения в максимально возможной …
97 c#  java  c++  casting 

4
Как использовать QueryPerformanceCounter?
Недавно я решил, что мне нужно перейти от использования миллисекунд к микросекундам для моего класса Timer, и после некоторых исследований я решил, что QueryPerformanceCounter, вероятно, моя самая безопасная ставка. (Предупреждение о Boost::Posixтом, что он может не работать в Win32 API, меня немного оттолкнуло). Однако я не совсем уверен, как это …
97 c++  windows  timer 

7
Как может работать программа с глобальной переменной main вместо основной функции?
Рассмотрим следующую программу: #include <iostream> int main = ( std::cout << "C++ is excellent!\n", 195 ); Используя g ++ 4.8.1 (mingw64) в ОС Windows 7, программа компилируется и работает нормально, печатая: C ++ отличный! к консоли. mainвыглядит как глобальная переменная, а не функция; как эта программа может работать без функции …

10
Как лучше всего проверить, существует ли файл на C ++? (кросс-платформенный)
Я прочитал ответы на вопрос , как лучше всего проверить, существует ли файл на C? (кросс-платформенный) , но мне интересно, есть ли лучший способ сделать это, используя стандартные библиотеки C ++? Желательно вообще без попытки открыть файл. Оба statи accessв значительной степени не могут быть Google. Что мне #includeследует использовать?
97 c++  file  file-io 


11
Эффективность преждевременного возврата в функцию
Это ситуация, с которой я часто сталкиваюсь как неопытный программист, и меня это интересует, особенно для моего амбициозного, требовательного к скорости проекта, который я пытаюсь оптимизировать. Для основных C-подобных языков (C, objC, C ++, Java, C # и т. Д.) И их обычных компиляторов будут ли эти две функции работать …

2
Qt поддерживает виртуальные чистые слоты?
В моем проекте с графическим интерфейсом Qtесть много классов "страниц конфигурации", которые все наследуются непосредственно отQWidget . Недавно я понял, что все эти классы имеют 2 общих слота ( loadSettings()и saveSettings()). По этому поводу у меня два вопроса: Имеет ли смысл писать промежуточный базовый абстрактный класс (назовем его BaseConfigurationPage) с …

3
Почему sizeof int неправильный, а sizeof (int) правильный?
Мы знаем, что sizeofэто оператор, используемый для вычисления размера любого типа данных и выражения, и когда операнд является выражением, скобки можно опустить. int main() { int a; sizeof int; sizeof( int ); sizeof a; sizeof( a ); return 0; } первое использование sizeofневерно, тогда как другие верны. При компиляции с …
97 c++  c  sizeof 

3
Использование emit против вызова сигнала, как если бы это была обычная функция в Qt
Допустим, у меня есть такой сигнал: signals: void progressNotification(int progress); Я только недавно узнал о ключевом слове emit в Qt. До сих пор я использовал сигналы, просто вызывая их как обычную функцию. Так что вместо: emit progressNotification(1000 * seconds); Я бы написал: progressNotification(1000 * seconds); Вызов их таким образом, казалось, …
97 c++  qt 

16
Разбиение шаблонных классов C ++ на файлы .hpp / .cpp - возможно ли?
Я получаю ошибки при попытке скомпилировать класс шаблона C ++, который разделен между a .hppи .cppfile: $ g++ -c -o main.o main.cpp $ g++ -c -o stack.o stack.cpp $ g++ -o main main.o stack.o main.o: In function `main': main.cpp:(.text+0xe): undefined reference to 'stack<int>::stack()' main.cpp:(.text+0x1c): undefined reference to 'stack<int>::~stack()' collect2: ld …

6
Как перетасовать std :: vector?
Я ищу универсальный способ многоразового перетасовки std::vectorв C ++. Вот как я сейчас это делаю, но я думаю, что это не очень эффективно, потому что ему нужен промежуточный массив, и он должен знать тип элемента (DeckCard в этом примере): srand(time(NULL)); cards_.clear(); while (temp.size() > 0) { int idx = rand() …
97 c++  shuffle  stdvector 

4
Разница между std :: system_clock и std :: stable_clock?
В чем разница между std::system_clockи std::steady_clock? (Примерный случай, иллюстрирующий разные результаты / поведение, был бы отличным). Если моя цель - точно измерить время выполнения функций (например, эталонный тест), что будет лучшим выбором между std::system_clock, std::steady_clockи std::high_resolution_clock?
97 c++  c++11  timer  chrono 

2
Агрегат Qt c ++ 'std :: stringstream ss' имеет неполный тип и не может быть определен
В моей программе есть эта функция, которая преобразует целые числа в строки: QString Stats_Manager::convertInt(int num) { stringstream ss; ss << num; return ss.str(); } Но когда я запускаю это, я получаю сообщение об ошибке: aggregate 'std::stringstream ss' has incomplete type and cannot be defined Я не совсем понимаю, что это …
97 c++  string  qt  stringstream 

2
Как получить размер файла в байтах с помощью C ++ 17
Есть ли подводные камни для конкретных операционных систем, о которых я должен знать? Есть много дубликатов ( 1 , 2 , 3 , 4 , 5 ) этого вопроса, но ответы на них были даны несколько десятилетий назад. Сегодняшние ответы на многие из этих вопросов неверны. Методы из других (старых …

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