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