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

C++ - это язык программирования общего назначения. Он был первоначально разработан как расширение для C и сохраняет похожий синтаксис, но теперь он совершенно другой язык. Используйте этот тег для вопросов о коде, который должен быть скомпилирован с помощью компилятора C++. Используйте тег версии для вопросов, связанных с конкретной стандартной версией [C++ 11], [C++ 17] и т.д.
15

Когда использовать виртуальные деструкторы?

У меня есть глубокое понимание большинства теорий ОО, но одна вещь, которая меня смущает, - это виртуальные деструкторы. Я думал, что деструктор всегда получает вызов независимо от того, что и для каждого объекта в цепочке. Когда вы собираетесь сде...
20 янв. '09 в 12:58
10

Замена 32-битного счетчика циклов на 64-битные значения приводит к сумасшедшим отклонениям производительности

Я искал самый быстрый способ для больших массивов данных popcount. Я столкнулся с очень странным эффектом: изменение переменной цикла от unsigned до uint64_t привело к снижению производительности на 50% на моем ПК. Контрольный показатель #include...
01 авг. '14 в 10:33
12

Что такое rvalues, lvalues, xvalues, glvalues ​​и prvalues?

В С++ 03 выражение имеет значение rvalue или lvalue. В С++ 11 выражение может быть: Rvalue именующего xvalue glvalue prvalue Две категории стали пятью категориями. Что представляют собой эти новые категории выражений? Как эти новые...
30 авг. '10 в 15:02
22

Компиляция приложения для использования в сильно радиоактивных средах

Мы собираем встроенное приложение C/С++, которое развертывается в экранированном устройстве в среде, облученной ионизирующим излучением . Мы используем GCC и кросс-компиляцию для ARM. При развертывании наше приложение генерирует некоторые ошибочные д...
24 апр. '16 в 19:09
16

В чем разница между const int *, const int * const и int const *?

Я всегда испортил, как правильно использовать const int*, const int * const и int const *. Существует ли набор правил, определяющих, что вы можете и чего не можете сделать? Я хочу знать все, что нужно делать, и все это не касается присвоений, перед...
17 июл. '09 в 13:28
25

Зачем нам нужны виртуальные функции на С++?

Я изучаю С++, и я просто вхожу в виртуальные функции. Из того, что я прочитал (в книге и в Интернете), виртуальные функции - это функции в базовом классе, которые вы можете переопределить в производных классах. Но ранее в книге, узнав о базовом нас...
06 мар. '10 в 7:10
6

Где и почему мне нужно поставить ключевые слова "шаблон" и "имя-тип"?

В шаблонах, где и зачем мне помещать typename и template в зависимые имена? Что же такое имена зависимых? У меня есть следующий код: template <typename T, typename Tail> // Tail will be a UnionNode too. struct UnionNode : public Tail { //...
04 мар. '09 в 11:56
21

Можно ли получить доступ к локальной переменной-памяти за пределами ее области?

У меня есть следующий код. #include <iostream> int * foo() { int a = 5; return &a; } int main() { int* p = foo(); std::cout << *p; *p = 8; std::cout << *p; } И код работает только без исключений во в...
22 июн. '11 в 14:05
6

Undefined поведение и точки последовательности

Что такое "точки последовательности"? Какова связь между поведением undefined и точками последовательности? Я часто использую смешные и запутанные выражения типа a[++i] = i;, чтобы заставить себя чувствовать себя лучше. Почему я должен прекратить...
14 нояб. '10 в 5:37
5

Соответствуют ли скобки после имени типа с новым?

Если "Тест" - обычный класс, есть ли разница между: Test* test = new Test; и Test* test = new Test();
06 мар. '09 в 19:39
23

Почему переменные не могут быть объявлены в инструкции switch?

Я всегда задавался этим вопросом - почему вы не можете объявлять переменные после метки case в инструкции switch? В С++ вы можете объявить переменные почти везде (и объявить их близкими к первому использованию, очевидно, хорошо), но следующее все рав...
18 сент. '08 в 13:11
5

Каковы правила об использовании подчеркивания в идентификаторе С++?

В С++ часто называют имена переменных-членов с каким-то префиксом, чтобы обозначать тот факт, что они являются переменными-членами, а не локальными переменными или параметрами. Если вы пришли из фона MFC, вы, вероятно, используете m_foo. Иногда я ви...
23 окт. '08 в 7:02
8

Как преобразовать std::string в const char * или char *?

Как преобразовать std::string в char* или const char*?
07 дек. '08 в 19:30
16

Разница между частным, общественным и защищенным наследованием

В чем разница между public, private и protected наследованием в С++? Все вопросы, которые я нашел на SO, касаются конкретных случаев.
13 мая '09 в 20:47
9

Что такое типы POD в С++?

Я встречал этот термин POD-type несколько раз. Что это значит?
28 сент. '08 в 18:36