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

199
Почему я должен получить доступ к членам базового класса шаблона через указатель this?

Если бы приведенные ниже классы не были шаблонами, я мог бы просто иметь их xв derivedклассе. Тем не менее, с кодом ниже, я должен использовать this->x. Зачем? template <typename T> class base { protected: int x; }; template <typename T> class derived : public base<T> { public:...

198
Что именно является реентерабельной функцией?

Большинство из тех времен , определение reentrance цитата из Википедии : Компьютерная программа или рутина описываются как повторно входящие, если это может быть безопасно снова до того, как ее предыдущий вызов был завершен (то есть ее можно безопасно выполнить одновременно). Для повторного входа,...

198
неопределенная ссылка на 'std :: cout'

Это будет пример: #include <iostream> using namespace std; int main() { cout << "Hola, moondo.\n"; } Выдает ошибку: gcc -c main.cpp gcc -o edit main.o main.o: In function `main': main.cpp:(.text+0xa): undefined reference to `std::cout' main.cpp:(.text+0xf): undefined reference to...

197
оператор возврата против выхода () в main ()

Должен ли я использовать exit()или просто returnзаявления в main()? Лично я одобряю returnутверждения, потому что я чувствую, что это похоже на чтение любой другой функции, и управление потоком, когда я читаю код, является плавным (по моему мнению). И даже если я хочу реорганизовать main()функцию,...

197
Предварительное объявление вложенных типов / классов в C ++

Я недавно застрял в такой ситуации: class A { public: typedef struct/class {...} B; ... C::D *someField; } class C { public: typedef struct/class {...} D; ... A::B *someField; } Обычно вы можете объявить имя класса: class A; Но вы не можете форвард объявить вложенный тип, следующее вызывает ошибку...

197
Стандарт C ++ предписывает низкую производительность для iostreams, или я просто имею дело с плохой реализацией?

Каждый раз, когда я упоминаю о низкой производительности iostreams стандартной библиотеки C ++, меня встречает волна недоверия. Тем не менее, у меня есть результаты профилировщика, показывающие большое количество времени, проведенного в коде библиотеки iostream (полная оптимизация компилятора), и...

197
Зачем использовать функции, не являющиеся членами начала и конца, в C ++ 11?

Каждый стандартный контейнер имеет beginи endспособ возвращения итераторов для этого контейнера. Тем не менее, C ++ 11, по- видимому , введенные свободные функции называются std::beginи std::endкоторые называют beginи endчлены функции. Итак, вместо того, чтобы писать auto i = v.begin(); auto e =...

196
Как я могу преобразовать между значениями с прямым порядком байтов и значениями с прямым порядком байтов в C ++?

Как я могу преобразовать между значениями с прямым порядком байтов и значениями с прямым порядком байтов в C ++? РЕДАКТИРОВАТЬ: Для ясности, я должен переводить двоичные данные (значения с плавающей запятой двойной точности и 32-разрядные и 64-разрядные целые числа) из одной архитектуры ЦП в...

196
Полезно ли размещать определения C ++ в заголовочных файлах?

Мой личный стиль в C ++ всегда заключался в том, чтобы помещать объявления классов во включаемый файл, а определения - в файл .cpp, очень похоже на то, как это предусмотрено в ответе Локи на файлы заголовков C ++, разделение кода . По общему признанию, одна из причин, по которой мне нравится этот...

196
Ключевое слово static и его различные применения в C ++

Ключевое слово staticимеет несколько значений в C ++, которое мне кажется очень запутанным, и я никогда не могу думать о том, как оно на самом деле должно работать. Из того, что я понимаю, есть staticдлительность хранения, что означает, что она длится в течение всей жизни программы в случае...

196
Удалите безопасные предупреждения (_CRT_SECURE_NO_WARNINGS) из проектов по умолчанию в Visual Studio

Есть ли способ установить по умолчанию для всех проектов удаление предупреждений прекомпилятора о безопасности, которые появляются при использовании таких функций, как scanf (). Я обнаружил, что вы можете сделать это, добавив строку в опцию проекта или #define _CRT_SECURE_NO_WARNINGSв начале кода....

195
Что такое &&& операция в C

#include <stdio.h> volatile int i; int main() { int c; for (i = 0; i < 3; i++) { c = i &&& i; printf("%d\n", c); } return 0; } Выход вышеуказанной программы составлен с использованием gccв 0 1 1 С опцией -Wallили выдает предупреждение:-Waddressgcc warning: the address of ‘i’...

194
Используете ли вы NULL или 0 (ноль) для указателей в C ++?

В первые дни C ++, когда он был прикреплен к C, вы не могли использовать NULL, как это было определено как (void*)0. Вы не можете присвоить NULL любому указателю, кроме void*, что делает его бесполезным. В те дни было принято, что вы использовали 0(ноль) для нулевых указателей. До сих пор я...

194
Что на самом деле является deque в STL?

На этот вопрос есть ответы на Переполнение стека на русском : Особенность размещения элементов в std :: deque Я смотрел на STL контейнеры и пытаясь понять , что они на самом деле (то есть структура данных , используемая), а Deque остановил меня: я сначала подумал , что это был двойной связанный...

194
Как включить (буквально) ВСЕ предупреждения GCC?

Я хотел бы включить - буквально - ВСЕ предупреждения, которые имеет GCC. (Вы думаете, это будет легко ...) Вы могли бы подумать, что -Wallможно сделать, но нет! Все еще нужно -Wextra. Вы могли бы подумать, что -Wextraможно сделать, но нет! Не все перечисленные здесь предупреждения (например,...