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

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

10
Можно ли удалить это?
Разрешено ли, delete this;если оператор delete является последним оператором, который будет выполнен в этом экземпляре класса? Конечно, я уверен, что объект, представленный this-pointer, newсоздан. Я думаю о чем-то вроде этого: void SomeModule::doStuff() { // in the controller, "this" object of SomeModule is the "current module" // now, if I want …

21
round () для поплавка в C ++
Мне нужна простая функция округления с плавающей точкой, таким образом: double round(double); round(0.1) = 0 round(-0.1) = 0 round(-0.9) = -1 Я могу найти ceil()и floor()в математике - но нет round(). Он присутствует в стандартной библиотеке C ++ под другим именем или отсутствует?

4
Зачем мне использовать push_back вместо emplace_back?
С ++ 11 векторов имеют новую функцию emplace_back. В отличие от этого push_back, который полагается на оптимизацию компилятора во избежание копирования, emplace_backиспользует идеальную пересылку для отправки аргументов непосредственно в конструктор для создания объекта на месте. Мне кажется, что emplace_backвсе push_backможет сделать, но иногда это будет лучше (но никогда не хуже). …
232 c++  c++11  std 

30
Утечки памяти когда-либо в порядке? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 2 года назад . Улучшить этот вопрос Допустимо ли когда-нибудь иметь утечку памяти в вашем приложении на …
231 c++  c  memory-leaks 

15
Как правильно использовать пространства имен в C ++?
Я пришел из Java, где используются пакеты, а не пространства имен. Я привык помещать классы, которые работают вместе, чтобы сформировать законченный объект в пакеты, а затем повторно использовать их позже из этого пакета. Но сейчас я работаю в C ++. Как вы используете пространства имен в C ++? Вы создаете …
231 c++  namespaces 

4
Может ли использование C ++ 11 'auto' улучшить производительность?
Я понимаю, почему autoтип в C ++ 11 улучшает правильность и удобство обслуживания. Я читал, что это также может улучшить производительность ( почти всегда авто от Херба Саттера), но я упускаю хорошее объяснение. Как можно autoулучшить производительность? Кто-нибудь может привести пример?
230 c++  performance  c++11  auto 

10
Могут ли лямбда-функции быть шаблонными?
В C ++ 11 есть ли способ шаблона лямбда-функции? Или это слишком специфично для шаблонов? Я понимаю, что вместо этого я могу определить классический шаблонный класс / функтор, но вопрос больше похож на: позволяет ли язык шаблонизировать лямбда-функции?
230 c++  templates  lambda  c++11 

5
Что означают «статически связанные» и «динамически связанные»?
Я часто слышу термины «статически связанные» и «динамически связанные», часто в отношении кода, написанного на C , C ++ или C # . О чем они, что именно они говорят и что они связывают?


10
Как преобразовать QString в std :: string?
Я пытаюсь сделать что-то вроде этого: QString string; // do things... std::cout << string << std::endl; но код не компилируется. Как вывести содержимое qstring в консоль (например, для целей отладки или по другим причинам)? Как конвертировать QStringв std::string?

30
Что делать с исходным файлом C ++ из 11000 строк?
Таким образом, в нашем проекте есть огромный исходный файл mainmodule.cpp (это 11000 строк?), И каждый раз, когда мне приходится его трогать, я съеживаюсь. Поскольку этот файл настолько центральный и большой, он продолжает накапливать все больше и больше кода, и я не могу придумать, как сделать так, чтобы он действительно начал …

4
Ошибка: перейти к метке регистра
Я написал программу, которая включает использование операторов switch ... Однако при компиляции это показывает: Ошибка: перейти к метке регистра. Почему это так? #include <iostream> #include <cstdlib> #include <fstream> #include <string> using namespace std; class contact { public: string name; int phonenumber; string address; contact() { name= "Noname"; phonenumber= 0; address= …
229 c++ 

4
Какой тип указателя мне использовать, когда?
Итак, в прошлый раз, когда я писал на С ++, std::auto_ptrвсе, что было доступно в std lib, boost::shared_ptrбыло в ярости. Я действительно никогда не смотрел на другие типы улучшенных умных указателей. Я понимаю, что C ++ 11 теперь предоставляет некоторые из типов boost, но не все. Так есть ли у …

9
Почему я предпочитаю использовать список инициализации членов?
Я неравнодушен к использованию списков инициализации членов с моими конструкторами ... но я давно забыл причины этого ... Используете ли вы списки инициализации членов в ваших конструкторах? Если так, то почему? Если нет, то почему нет?


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