Вопросы
`std::wstring` против `std::string`: когда использовать и в чем разница?
Я не могу понять различия между std::string
и std::wstring
. Я знаю, что std::wstring
поддерживает широкие символы, такие как символы Unicode. У меня есть следующие вопросы:
- Когда следует использовать
std::wstring
вместоstd::string
? - Может ли
std::string
содержать весь набор...
Имеют ли круглые скобки после имени типа значение при использовании new?
Заголовок: Разница между созданием экземпляров класса в C++: new Test
и new Test()
Текст проблемы:
Я изучаю C++ и столкнулся с вопросом о различиях между двумя способами создания экземпляра класса. Если Test
является обычным классом, есть ли какая-либо разница между следующими строками...
Что такое std::move() и когда его следует использовать?
Проблема: Необходимость в разъяснении функциональности и применения технологии
Что это?
Я столкнулся с [название технологии или инструмента], и мне не совсем ясно, что это такое и какие его основные характеристики.Что он делает?
Хотел бы получить ясное объяснение...
Где и зачем нужно использовать ключевые слова "template" и "typename"?
В шаблонах, где и почему мне нужно указывать typename и template для зависимых имен? Что такое зависимые имена?
У меня есть следующий код:
template // Tail тоже будет UnionNode.
struct UnionNode : public Tail {
// ...
template struct inUnion {
// Вопрос: где нужно...
Новые возможности C++17: что стоит знать?
Проблема
C17 теперь является завершённым, и в него было предложено множество новых возможностей. В связи с этим у меня возник следующий вопрос: какие именно функции были добавлены в C в версии C++17?
Я использую компилятор C++, который поддерживает "C++1z". Могу ли я узнать, какие из...
Что такое лямбда-выражение и когда его следует использовать?
Вопрос: Что такое лямбда-выражение в C++11? В каких ситуациях я мог бы его использовать? Какие классы задач они решают, что было невозможно до их введения?
Несколько примеров и областей применения были бы полезны.
В чем проблема с "using namespace std;"?
Я слышал, что использование using namespace std; считается плохой практикой, и что мне следует прямо использовать stdcout и stdcin. Почему это так? Не возникает ли риска объявления переменных с такими же именами, как что-то в пространстве имен std? Есть ли проблемы с производительностью?
Почему в макросах используются, казалось бы, бессмысленные операторы do-while и if-else?
В многих макросах на C/C++ я замечаю, что код макроса обернут в циклы do while, которые, по сути, кажутся бессмысленными. Вот примеры: #define FOO(X) do { f(X); g(X); } while (0) #define FOO(X) if (1) { f(X); g(X); } else
Я не понимаю, зачем нужен do while. Почему нельзя просто написать это без...
Что означает T&& (двойной амперсанд) в C++11?
Я изучаю новые возможности C++11, и одна из них, которую я заметил, — это двойной амперсанд при объявлении переменных, например, T&& var.
Во-первых, как называется эта конструкция? Мне бы хотелось, чтобы Google позволял искать подобные символы.
Что именно это означает?
На первый взгляд, кажется,...
Почему следует использовать указатель вместо самого объекта?
Я пришёл из мира Java и начал работать с объектами в C++. Но меня смутило, что многие разработчики часто используют указатели на объекты, а не сами объекты. Например, вот так:
Object *myObject = new Object;
вместо этого:
Object myObject;
Также, вместо того чтобы...
Ошибка "Неопределенная ссылка/нестираемая внешняя символ" — что это такое и как её исправить?
Что такое ошибки "неопределенная ссылка"/"нерешенный внешний символ"? Каковы их общие причины и как можно исправить и предотвратить эти ошибки?
Что такое Правило трёх?
Проблема с копированием объектов в C++:
- Что означает копирование объекта?
- Что такое конструктор копирования и оператор присваивания копии?
- Когда мне нужно объявлять их самостоятельно?
- Как я могу предотвратить копирование своих объектов?
Правила использования символа подчеркивания в идентификаторах C++
В C++ распространено именовать переменные-члены с использованием префикса, чтобы обозначить, что это переменные класса, а не локальные переменные или параметры. Если вы работали с MFC, вы, вероятно, используете m_foo. Я также иногда видел использование myFoo.
В C# (или, возможно, только в .NET)...
Какова разница между публичным, приватным и защищённым наследованием?
Вопрос: Какова разница между public, private и protected наследованием в C++?
Описание проблемы: Я изучаю C++ и пытаюсь разобраться в различных типах наследования, но не могу понять, как именно различаются public, private и protected наследования. Как они влияют на доступ к членам...
Разница между const int*, const int * const и int * const?
Я всегда путаюсь, как правильно использовать const int *
, const int * const
и int * const
. Существенно ли их различие? Существуют ли какие-то правила, определяющие, что можно, а что нельзя делать с этими указателями?
Мне нужно знать все "можно" и "нельзя" в контексте присваивания, передачи...