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

130
std :: function и std :: bind: что это такое и когда их следует использовать?

Я знаю, что такое функторы и когда их использовать с stdалгоритмами, но я не понял, что Страуструп говорит о них в FAQ по C ++ 11 . Может ли кто-нибудь объяснить, что std::bindи std::functionесть, когда их следует использовать, и привести несколько примеров для...

130
Перегрузка операторов доступа к членам ->,. *

Я понимаю , большинство перегрузки операторов, за исключением операторов доступа члена ->, .*, и ->*т.д. В частности, что передается этим операторным функциям, а что нужно возвращать? Как операторная функция (например operator->(...)) узнает, на какой член ссылается? Это может знать? Это...

130
Почему указатели на функции и указатели данных несовместимы в C / C ++?

Я читал, что преобразование указателя функции в указатель данных и наоборот работает на большинстве платформ, но не гарантируется. Почему это так? Разве оба не должны быть просто адресами в основной памяти и, следовательно, быть...

130
Что Visual Studio делает с удаленным указателем и почему?

В книге на C ++, которую я читал, говорится, что когда указатель удаляется с помощью deleteоператора, память в том месте, на которое он указывает, «освобождается» и может быть перезаписана. В нем также указано, что указатель будет продолжать указывать на то же место, пока он не будет переназначен...

129
Неразрешенный внешний символ для статических членов класса

Проще говоря: У меня есть класс, который состоит в основном из статических общедоступных членов, поэтому я могу сгруппировать вместе похожие функции, которые по-прежнему необходимо вызывать из других классов / функций. В любом случае, я определил две статические переменные типа unsigned char в...

129
Должен ли оператор << быть реализован как друг или как функция-член?

Это в основном вопрос, есть ли «правильный» способ реализации operator<<? Читая это, я вижу что-то вроде: friend bool operator<<(obj const& lhs, obj const& rhs); предпочтительнее чем-то вроде ostream& operator<<(obj const& rhs); Но я не совсем понимаю, почему я...

129
Когда и почему компилятор инициализирует память до 0xCD, 0xDD и т. Д. В malloc / free / new / delete?

Я знаю, что компилятор иногда инициализирует память определенными шаблонами, такими как 0xCDи 0xDD. Я хочу знать, когда и почему это происходит. когда Это специфично для используемого компилятора? Так поступают malloc/newи free/deleteработают в этом отношении? Это зависит от платформы? Произойдет...

129
Сколько и какие варианты использования «const» в C ++?

Как начинающему программисту на C ++, есть некоторые конструкции, которые мне кажутся очень непонятными, одна из них const. Вы можете использовать его во многих местах и ​​с таким количеством различных эффектов, что новичку практически невозможно выйти живым. Сможет ли какой-нибудь гуру C ++...

129
Заставить GDB сохранить список точек останова

Хорошо, info break перечисляет точки останова, но не в формате, который бы хорошо работал с их повторным использованием с помощью команды --command, как в этом вопросе . Есть ли у GDB способ снова сбросить их в файл, приемлемый для ввода? Иногда в сеансе отладки необходимо перезапустить GDB после...

129
Полиморфизм в C ++

НАСКОЛЬКО МНЕ ИЗВЕСТНО: C ++ предоставляет три различных типа полиморфизма. Виртуальные функции Перегрузка имени функции Перегрузка оператора В дополнение к трем вышеупомянутым типам полиморфизма существуют и другие виды полиморфизма: во время выполнения время компиляции специальный полиморфизм...

129
Почему std :: shared_ptr <void> работает

Я нашел код с использованием std :: shared_ptr для произвольной очистки при завершении работы. Сначала я подумал, что этот код не может работать, но потом попробовал следующее: #include <memory> #include <iostream> #include <vector> class test { public: test() { std::cout <<...

129
Почему целочисленное переполнение на x86 с GCC вызывает бесконечный цикл?

Следующий код переходит в бесконечный цикл GCC: #include <iostream> using namespace std; int main(){ int i = 0x10000000; int c = 0; do{ c++; i += i; cout << i << endl; }while (i > 0); cout << c << endl; return 0; } Итак, дело в следующем: подписанное целочисленное...

129
Доступ к неактивному члену союза и неопределенному поведению?

У меня создалось впечатление, что доступ к unionчлену, отличному от последнего набора, - это UB, но я не могу найти надежную ссылку (кроме ответов, в которых утверждается, что это UB, но без какой-либо поддержки со стороны стандарта). Итак, это неопределенное...

128
Назначение последовательностей триграфа в C ++?

Согласно C ++ '03 Standard 2.3 / 1: Перед выполнением любой другой обработки каждое вхождение одной из следующих последовательностей из трех символов («триграфические последовательности») заменяется одним символом, указанным в таблице 1....