c++- все статьи тега ➜ страница 15
Что означает добавленное двойное двоеточие "::"?
Я нашел эту строку кода в класс, который я должен изменить: ::Configuration * tmpCo = m_configurationDB;//pointer to current db и я не знаю, что именно означает двойное двоеточие перед именем класса. Без этого я бы прочитал: объявление tmpCo как указатель на объект класса Configuration... но добавленная двойная двоеточие сбивает меня с толку. Я нашел: typedef ::config::set ConfigSet; ...
Проверка, является ли двойной (или плавающий) NaN в C++
есть ли функция isnan ()? PS.: Я в MinGW (если это имеет значение). я решил это с помощью isnan () from <math.h>, который не существует в <cmath>, который находился #includeing сначала. ...
Когда следует использовать 'friend' в C++?
Я читал через C++ FAQ и было любопытно о friend декларации. Я лично никогда не использовал его, но я заинтересован в изучении языка. что является хорошим примером использования friend? читая FAQ немного дольше Мне нравится идея <<>> оператор перегрузки и добавления в качестве друга этих классов. Однако я не уверен, как это не нарушает инкапсуляцию. Когда эти исключения могут оставаться в рамках строгости, которая является ООП? ...
Как я могу преобразовать std:: string в int?
просто есть быстрый вопрос. Я посмотрел вокруг в интернете совсем немного, и я нашел несколько решений, но ни один из них еще работал. Глядя на преобразование строки в int, и я не имею в виду ASCII-коды. для быстрого разбега мы передаем уравнение в виде строки. Мы должны разбить его, правильно отформатировать и решить линейные уравнения. Теперь, говоря это, я не могу преобразовать строку в int. Я знаю, что строка будет в либо формат (-5) или (25) и т. д. так что это определенно int. Но как нам ...
Правило трех становится правилом пяти с C++11?
Итак, после просмотра эта замечательная лекция на ссылках rvalue я думал, что каждый класс выиграет от такого "конструктора перемещения",template<class T> MyClass(T&& other) edit и, конечно, "оператор присваивания перемещения",template<class T> MyClass& operator=(T&& other) Как указывает Филипп в своем ответе, если он динамически выделяет члены или вообще хранит указатели. Так же, как и ты должны есть copy-ctor, оператор присваивания и деструктор, если точки, упом ...
Каков самый простой способ сделать сбой программы на C++?
Я пытаюсь сделать программу Python, которая взаимодействует с другим crashy процессом (это не в моих руках). К сожалению, программа, с которой я взаимодействую, даже не падает надежно! Поэтому я хочу сделать быструю программу на C++, которая специально падает, но я на самом деле не знаю лучшего и кратчайшего способа сделать это, кто-нибудь знает, что положить между моими: int main() { crashyCodeGoesHere(); } чтобы сделать мою программу C++ аварийно завершить работу надежно ...
usr / bin/ ld: не удается найти -l
Я пытаюсь скомпилировать свою программу и она возвращает эту ошибку: usr/bin/ld: cannot find -l<nameOfTheLibrary> в моем makefile я использую команду g++ и ссылка на мою библиотеку, которая является символической ссылкой на мою библиотеку, расположенную в другом каталоге. есть возможность добавить, чтобы заставить его работать, пожалуйста? ...
C++ Virtual / Pure Virtual Объяснил
Что именно означает, если функция определена как виртуальная и это то же самое, что и чистая виртуальная? ...
Как правильно реализовать шаблон Заводского метода в C++
в C++ есть одна вещь, которая заставляет меня чувствовать себя некомфортно в течение довольно долгого времени, потому что я честно не знаю, как это сделать, хотя это звучит просто: Как правильно реализовать Заводской метод в C++? цель: дать возможность клиенту создать экземпляр некоторого объекта с помощью заводских методов вместо конструкторов объекта, без неприемлемых последствий и снижения производительности. под "шаблоном метода фабрики" я подразумеваю как статические методы фабрики внут ...
C++11 обратный диапазон на основе for-loop
есть ли адаптер контейнера, который изменил бы направление итераторов, чтобы я мог перебирать контейнер в обратном порядке с помощью цикла for-loop на основе диапазона? с явными итераторами я бы преобразовал это: for (auto i = c.begin(); i != c.end(); ++i) { ... в: for (auto i = c.rbegin(); i != c.rend(); ++i) { ... Я хочу преобразовать это: for (auto& i: c) { ... для этого: for (auto& i: std::magic_reverse_adapter(c)) { ... есть ли такая вещь или я должен написать ее сам? ...
В чем разница между new/delete и malloc/free?
В чем разница между new/delete и malloc/free? обзоры (дубликат?): В каких случаях я использую malloc vs new? ...
Сравнение платформ модульных тестов c++ [закрыто]
Я знаю, что уже есть несколько вопросов относительно рекомендаций для фреймворков модульного тестирования c++, но все ответы не помогли, поскольку они просто рекомендуют одну из фреймворков, но не предоставляют никакой информации о сравнении (функции). Я думаю, что наиболее интересными фреймворками являются CppUnit, Boost и новая платформа тестирования Google. Кто-нибудь уже проводил сравнение? ...
std:: уникально замок или std:: предохранитель замка?
у меня есть два варианта использования. A. Я хочу синхронизировать доступ двумя потоками к очереди. B. Я хочу синхронизировать доступ двумя потоками к очереди и использовать переменную условия, потому что один из потоков будет ждать содержимого, которое будет храниться в очереди другим потоком. для случая использования я вижу пример кода с использованием std::lock_guard<>. Для случая использования B я вижу пример кода с помощью std::unique_lock<>. Что такое разница между ними ...
Почему массивы переменной длины не являются частью стандарта C++?
Я не использовал c очень много в последние несколько лет. Когда я прочитал этот вопрос сегодня, я столкнулся с некоторым синтаксисом C, с которым я не был знаком. судя по всему C99 следующий синтаксис: void foo(int n) { int values[n]; //Declare a variable length array } это кажется довольно полезная функция. Был ли когда-нибудь обсуждение о добавлении его в стандарт C++, и если да, то почему он был задан? некоторые возможные причины: волосатый для поставщиков компилятора к реализовать ...
Как реализовать итератор в стиле STL и избежать распространенных ошибок?
Я сделал коллекцию, для которой я хочу предоставить итератор с произвольным доступом в стиле STL. Я искал вокруг пример реализации итератора, но я не нашел ни одного. Я знаю о необходимости постоянных перегрузок [] и * операторы. Каковы требования к итератору, чтобы быть "STL-стиль" и каковы некоторые другие подводные камни, чтобы избежать (если таковые имеются)? дополнительный контекст: это для библиотеки, и я не хочу вводить какую-либо зависимость от нее, если я действительно нужно. Я пишу св ...
Почему в C++ нет сборщика мусора?
Я не задаю этот вопрос из-за заслуг сбора мусора в первую очередь. Моя главная причина спросить об этом заключается в том, что я знаю, что Бьярне Страуструп сказал, что C++ будет иметь сборщик мусора в какой-то момент времени. с учетом сказанного, почему он не был добавлен? Уже есть некоторые сборщики мусора для C++. Это просто одна из тех вещей типа" легче сказать, чем сделать"? Или есть другие причины, по которым он не был добавлен (и не будет добавлен в C++11)? перекрестные ссылки: сб ...
Как определить, компилирую ли я код с определенной версией Visual Studio?
есть ли способ узнать, компилирую ли я под определенной версией Microsoft Visual Studio? ...
Как я могу перебирать перечисления?
Я только что заметил, что вы не можете использовать стандартные математические операторы на перечисление, такие как ++ или += Итак, каков наилучший способ перебора всех значений в перечислении C++? ...
Когда я должен использовать новое ключевое слово в C++?
Я использую C++ в течение короткого времени, и мне было интересно о новая ключевое слово. Просто, я должен использовать его, или нет? 1) с новая ключевое слово... MyClass* myClass = new MyClass(); myClass->MyField = "Hello world!"; 2) Без новая ключевое слово... MyClass myClass; myClass.MyField = "Hello world!"; С точки зрения реализации, они не кажутся такими разными (но я уверен, что они есть)... Однако мой основной язык-C#, и, конечно же, 1-й метод-это то, что я использую к. сложно ...
"распаковка" кортежа для вызова соответствующего указателя функции
Я пытаюсь хранить в std::tuple различное число значений, которые позже будут использоваться в качестве аргументов для вызова указателя функции, который соответствует сохраненным типам. Я создал упрощенный пример, показывающий проблему, которую я изо всех сил пытаюсь решить: #include <iostream> #include <tuple> void f(int a, double b, void* c) { std::cout << a << ":" << b << ":" << c << std::endl; } template <typename ...Args> struct sav ...