c++- все статьи тега ➜ страница 27


Пример использования общего ptr?

Привет я задал вопрос сегодня о как вставить различные типы объектов в один и тот же векторный массив и мой код в этот вопрос gate* G[1000]; G[0] = new ANDgate() ; G[1] = new ORgate; //gate is a class inherited by ANDgate and ORgate classes class gate { ..... ...... virtual void Run() { //A virtual function } }; class ANDgate :public gate {..... ....... void Run() { //AND version of Run } }; class ORgate :public gate {..... ....... void Run() { ...

Что такое C++ функция для возведения числа в степень?

Как поднять число до власти? 2^1 2^2 2^3 etc... ...

Как инициализировать переменную-член const в классе?

#include <iostream> using namespace std; class T1 { const int t = 100; public: T1() { cout << "T1 constructor: " << t << endl; } }; когда я пытаюсь инициализировать переменную-член const t С 100. Но это дает мне следующую ошибку: test.cpp:21: error: ISO C++ forbids initialization of member ‘t’ test.cpp:21: error: making ‘t’ static как я могу инициализировать const значение? ...

Почему я не могу создать вектор лямбд (того же типа) в C++11?

Я пытался создать вектор лямбда, но не удалось: auto ignore = [&]() { return 10; }; //1 std::vector<decltype(ignore)> v; //2 v.push_back([&]() { return 100; }); //3 до строки #2, это компилирует штрафа в размере. Но строка#3 дает ошибка компиляции: ошибка: нет подходящей функции для вызова 'СТД::вектор>::push_back(основной()::)' мне не нужен вектор указателей функций или вектор объектов функций. Однако вектор объектов функций, которые инкапсулируют реальные лямбда ...

const char* и char const* - это одно и то же?

насколько я понимаю, const модификаторы должны быть прочитаны справа налево. Из этого я получаю следующее: const char* - это указатель, элементы char которого не могут быть изменены, но сам указатель может, и char const* постоянный указатель на mutable chars. но я получаю следующие ошибки в следующем коде: const char* x = new char[20]; x = new char[30]; //this works, as expected x[0] = 'a'; //gives an error as expected char const* y = new char[20]; y = new char[20]; //this ...

Почему деление двух int не дает правильного значения при присвоении double?

как получилось, что в следующем фрагменте int a = 7; int b = 3; double c = 0; c = a / b; c в конечном итоге имеет значение 2, а не 2.3333, как можно было бы ожидать. Если a и b удваиваются, ответ действительно превращается в 2.333. Но наверняка потому что c уже двойной он должен был работать с целыми числами? так как int/int=double не работает? ...

Ключевое слово без знака в C++

имеет ли ключевое слово unsigned значение по умолчанию для определенного типа данных в C++? Я пытаюсь написать функцию для класса для прототипа: unsigned Rotate(unsigned object, int count) но я действительно не понимаю, что unsigned средства. Разве это не должно быть похоже unsigned int или что-то? ...

Как создать общую библиотеку с cmake?

Я написал библиотеку, которую я использовал для компиляции с помощью самописного файла Makefile, но теперь я хочу переключиться на cmake. Дерево выглядит так (я удалил все ненужные файлы): . ├── include │   ├── animation.h │   ├── buffers.h │   ├── ... │   ├── vertex.h │   └── world.h └── src ├── animation.cpp ├── buffers.cpp ├── ... ├── vertex.cpp └── world.cpp Так что я пытаюсь сделать, это просто скомпилировать исходный код в общую библиотеку, а затем установить его с з ...

Разделение шаблонных классов C++ на.ТЭЦ./cpp файлов-это возможно?

Я получаю ошибки, пытаясь скомпилировать класс шаблона C++, который разделен между .hpp и .cpp file: $ g++ -c -o main.o main.cpp $ g++ -c -o stack.o stack.cpp $ g++ -o main main.o stack.o main.o: In function `main': main.cpp:(.text+0xe): undefined reference to 'stack<int>::stack()' main.cpp:(.text+0x1c): undefined reference to 'stack<int>::~stack()' collect2: ld returned 1 exit status make: *** [program] Error 1 вот мой код: стек.ГЭС: #ifndef _STACK_HPP #define ...

Почему я не могу определить функцию внутри другой функции?

это не вопрос лямбда-функции, я знаю, что я могу назначить лямбда переменной. какой смысл позволять нам объявлять, но не определять функцию внутри кода? например: #include <iostream> int main() { // This is illegal // int one(int bar) { return 13 + bar; } // This is legal, but why would I want this? int two(int bar); // This gets the job done but man it's complicated class three{ int m_iBar; public: three(int bar):m_iBar(13 + bar){} ...

Как отключить неиспользуемые предупреждения переменных, выходящие из gcc в стороннем коде, который я не хочу редактировать?

Я хотел бы знать, какой переключатель вы передаете компилятору gcc, чтобы отключить предупреждения о неиспользуемых переменных? Я получаю ошибки из boost на windows, и я не хочу касаться кода boost: C:boost_1_52_0/boost/system/error_code.hpp: At global scope: C:boost_1_52_0/boost/system/error_code.hpp:214:36: error: 'boost::system::posix_category' defined but not used [-Werror=unused-variable] C:boost_1_52_0/boost/system/error_code.hpp:215:36: error: 'boost::system::errno_ecat' defined but ...

В чем разница между представлением span и array в библиотеке gsl?

в нескольких недавних презентациях конференции я слышал, как Бьярне Страуструп и другие упоминают новые рекомендации по кодированию для C++ и некоторые типы, поддерживающие их. в частности, я помню пример span<T> вместо (T* p, int n) как параметр функции (во время около 32:00 в разговоре); но я также помню предложение использовать array_view<T>. Это две альтернативы, но одна и та же концепция? Или я путаю вещи, и они на самом деле не так связаны? Я не могу найти никакого авторите ...

Почему std::stack использует std:: deque по умолчанию?

поскольку для использования контейнера в стеке требуются только следующие операции: обратно() push_back () pop_back () Почему-контейнер по умолчанию для него в начале очереди, а не вектор? разве перераспределения deque не дают буфер элементов перед front (), так что push_front() является эффективной операцией? Не зря эти элементы, поскольку они никогда не будут использоваться в контексте стек? Если нет накладных расходов для использования deque таким образом вместо вектора, почему по умолч ...

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

почему я не могу сделать это? class A { public: int a, b; }; class B : public A { B() : A(), a(0), b(0) { } }; ...

Как сериализовать объект в C++?

У меня есть небольшая иерархия объектов, которые мне нужно сериализовать и передать через соединение сокета. Мне нужно как сериализовать объект, так и десериализовать его на основе того, какой он тип. Есть ли простой способ сделать это в C++ (как есть в Java)? есть ли какие-либо примеры кода сериализации C++ в интернете или учебные пособия? EDIT: просто чтобы быть ясно, я ищу методы преобразования объекта в массив байтов, а затем обратно в объект. Я смогите отрегулировать передачу гнезда. ...

Qt: не удается найти-ошибка lGL

Я только что переустановил QtCreator, создал новый проект ( Qt Application) получил это после компиляции: /usr/bin/ld: **cannot find -lGL** collect2: error: ld returned 1 exit status make: *** [untitled1] Error 1 18:07:41: The process "/usr/bin/make" exited with code 2. Error while building/deploying project untitled1 (kit: Desktop Qt 5.1.0 GCC 32bit) When executing step 'Make' (проект пуст, я не делал никаких изменений) Qt Creator 2.7.2 На основе Qt 5.1.0 (32 бит) Ubuntu 13.04 Как ...

Что должно войти в Ан.H-файл?

при разделении кода на несколько файлов только то, что именно должно идти в an .H файл и то, что должно войти в a .cpp файл? ...

Взвешенные случайные числа

Я пытаюсь реализовать взвешенные случайные числа. В настоящее время я просто бьюсь головой о стену и не могу понять этого. в моем проекте (Hold'em hand-ranges, субъективный анализ all-in equity) я использую случайные функции Boost. Итак, допустим, я хочу выбрать случайное число между 1 и 3 (либо 1, 2 или 3). Генератор Mersenne twister Boost работает как шарм для этого. Однако я хочу, чтобы выбор был взвешен, например, как это: 1 (weight: 90) 2 (weight: 56) 3 (weight: 4) есть ли у Boost какая ...

Что это за синтаксис C++, который помещает блок, окруженный скобками, где ожидается выражение?

я наткнулся на эту странную программу на C++. #include <iostream> using namespace std; int main() { int a = ({int x; cin >> x; x;}); cout << a; } может кто-нибудь объяснит, что происходит? Как называется эта конструкция? ...

Вызов pthread cond сигнала без блокировки мьютекса

Я где-то читал, что нужно запереть мьютекс перед вызовом pthread_cond_signal и разблокировать mutext после вызова его: процедура pthread_cond_signal() является используется для сигнала (или пробуждения) другого нить, которая ждет на переменная условия. Так и должно быть вызывается после блокировки мьютекса и должен разблокировать мьютекс для того, чтобы pthread_cond_wait() обычной полный. мой вопрос: не это нормально, чтобы позвонить pthread_cond_signal или pthread_cond_broad ...