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


Неразрешенных внешних символ "общественности: виртуальная структура QMetaObject константные * thiscall родителей

я унаследовал класс от QObject : class Parent: public QObject { Q_OBJECT QObject* cl; public: Parent(QObject *parent=0):QObject(parent) { cl = NULL; } QObject* getCl() const { return cl; } void setCl(QObject *obj) { cl = obj; } }; но когда я пишу : Parent ev; Я получаю следующую ошибку: main.obj:-1: error: LNK2001: unresolved external symbol "public: virtual struct QMetaObject const * __thiscall Parent::metaObject(void)const " (?m ...

Преобразование float в std:: string в C++

у меня есть значение float, которое должно быть помещено в std::string. Как преобразовать из float в string? float val = 2.5; std::string my_val = val; // error here ...

Как получить доступную память C++ / g++?

Я хочу выделить мои буферы в соответствии с доступной памятью. Такой, что, когда я делаю обработку и использование памяти идет вверх, но все еще остается в доступных пределах памяти. Есть ли способ получить доступную память (я не знаю, будет ли состояние виртуальной или физической памяти иметь какое-либо значение ?). Метод должен быть независимым от платформы, поскольку он будет использоваться в Windows, OS X, Linux и AIX. (И если это возможно, то я также хотел бы выделить часть доступной памяти ...

В чем преимущество использования std::allocator вместо new В C++?

Я только что прочитал о std::allocator. На мой взгляд, это сложнее использовать его вместо использования new и delete. С allocator мы должны явно выделить память кучи, построить ее, уничтожить ее, а затем, наконец, освободить память. Так почему же он был создан? в каких случаях он может быть использован и когда он должен быть использован вместо нового и удалить? ...

Использование перечисления в качестве индекса массива

у меня есть это перечисление: enum ButtonState { BUTTON_NORMAL = 0, BUTTON_PRESSED = 1, BUTTON_CLICKED = 2 }; const u8 NUM_BUTTON_STATES = 3; в моем классе Button у меня есть переменные-члены ButtonState state; и ButtonColors colors[NUM_BUTTON_STATES];. При рисовании кнопки, я использую colors[state] чтобы получить цвета для любого состояния, в котором находится кнопка. мои вопросы: это хороший стиль программирования? Есть ли лучший способ сделать это? (Я обычно использую толь ...

Как я могу распечатать значения wchar t для консоли?

пример: #include <iostream> using namespace std; int main() { wchar_t en[] = L"Hello"; wchar_t ru[] = L"Привет"; //Russian language cout << ru << endl << en; return 0; } этот код печатает только шестнадцатеричные значения, такие как adress. Как распечатать строку wchar_t? ...

Компиляторы и порядок аргументов оценки в C++

хорошо, я знаю, что стандарт диктует, что реализация C++ может выбирать, в каком порядке оцениваются аргументы функции, но есть ли какие-либо реализации, которые фактически "используют" это в сценарии, где это действительно повлияет на программу? Классический Пример: int i = 0; foo(i++, i++); примечание: Я не ищу кого-то, чтобы сказать мне, что на порядок оценки нельзя полагаться, я это хорошо знаю. Меня интересует только ли компиляторы на самом деле оценивают слева направо, потому что я пре ...

В C++ оператор switch выражение гарантии оценки

относительно переключателя стандартные состояния следующие. " когда оператор switch выполняется, его состояние оценивается и сравнивается с каждой константой case." означает ли это, что выражение условия вычисляется один раз и только один раз, и оно гарантируется стандартом для каждого компилятора? например, когда функция используется в головке оператора switch, с побочным эффектом. int f() { ... } switch (f()) { case ...; case ...; } ...

Каковы определения для LPARAM и WPARAM?

Я знаю, что я ленив здесь, и я должен тралить заголовочные файлы для себя, но каковы фактические типы для параметров LPARAM и WPARAM? Это указатели или четырехбайтовые ints? Я делаю код взаимодействия C# и хочу быть уверенным, что он работает на системах x64. ...

Почему Java читает большой файл быстрее, чем C++?

у меня есть файл 2 ГБ (iputfile.txt), в котором каждая строка в файле есть слова, как: apple red beautiful smell spark input мне нужно написать программу, чтобы прочитать каждое слово в файле и печатать количество слов. Я написал его с помощью Java и C++, но результат удивителен: Java работает в 2,3 раза быстрее, чем C++. Мой код выглядит следующим образом: C++: int main() { struct timespec ts, te; double cost; clock_gettime(CLOCK_REALTIME, &ts); ifstream fin("inputfile ...

Почему Qt использует свой собственный инструмент make, qmake?

Я только начал использовать Qt и заметил, что он использует свой собственный инструмент, qmake. почему Qt использует свой собственный инструмент make? есть ли что-то особенное, что мешает ему использовать стандартный инструмент make? вызывает ли qmake GCC компилятор C++? ...

Выражение должно иметь тип класса

Я не кодированный в C++ в течение некоторого времени, и я застрял, когда я попытался скомпилировать этот простой фрагмент #include "iostream" using namespace std; class A { public: void f() { cout<<"f()n"; } }; int main() { // A a; //this works A *a = new A(); //this doesn't a.f(); // "f has not been declared" system("pause"); } ...

Что быстрее, повторяя вектор STL с помощью vector:: iterator или с помощью at()?

С точки зрения производительности, что будет работать быстрее? Есть ли разница? Это зависит от платформы? //1. Using vector<string>::iterator: vector<string> vs = GetVector(); for(vector<string>::iterator it = vs.begin(); it != vs.end(); ++it) { *it = "Am I faster?"; } //2. Using size_t index: for(size_t i = 0; i < vs.size(); ++i) { //One option: vs.at(i) = "Am I faster?"; //Another option: vs[i] = "Am I faster?"; } ...

Возврат указателя на векторный элемент в c++

у меня есть вектор myObjects в глобальном масштабе. У меня есть метод, который использует std::vector<myObject>::const_iterator чтобы пересечь вектор и сделать некоторые сравнения, чтобы найти конкретный элемент. Как только я нашел нужный элемент, я хочу иметь возможность вернуть указатель на него (вектор существует в глобальной области видимости). Если я вернусь &iterator, Я возвращаю адрес итератора или адрес того, на что указывает итератор? мне нужно бросить const_iterator вернуть ...

Улучшенные циклы в C++

я переключаюсь с Java на C++, и мне было интересно, содержит ли C++ расширенные циклы for, которые я использовал в java, например: int[] numbers = {1,2,3,4,5,6,7,8,9,10}; for (int item : numbers) { System.out.println("Count is: " + item); } возможен ли такой же "ярлык" в C++? ...

Как поймать ошибку сегментации в Linux?

Мне нужно поймать ошибку сегментации в операциях очистки сторонних библиотек. Это происходит иногда непосредственно перед выходом моей программы, и я не могу исправить реальную причину этого. В программировании Windows я мог бы сделать это с __try - __catch. Есть ли кросс-платформенный или платформенный способ сделать то же самое? Мне это нужно в Linux, gcc. ...

Что делает` std:: kill dependency', и почему я хочу его использовать?

я читал о новой модели памяти C++11, и я наткнулся на (§29.3/14-15). Я пытаюсь понять, почему я хотел бы использовать его. я нашел пример в предложение N2664 но это не помогало. он начинается с показа кода без std::kill_dependency. Здесь первая строка переносит зависимость во вторую, которая переносит зависимость в операцию индексирования, а затем переносит зависимость в элемент это. Если, гипотетически, компилятор "знает", что массив заполнен нулями, он может оптимизировать этот вызов до do ...

Где CLion хранит исполняемые файлы?

Я устанавливаю CLion на Ubuntu 14.04. Я строю свой первый проект с помощью CMakeLists.txt: исходный файл: #include <iostream> using namespace std; int main() { cout << "Hello, World!" << endl; return 0; } CMakeLists.txt: cmake_minimum_required(VERSION 2.8.4) project(sh) set(SOURCE_FILES main.cpp) add_executable(sh ${SOURCE_FILES}) мой исходный файл находится в / home / user / Desktop / sh. Но после сборки, я не вижу исполняемого файла в этой папке. Где же он? ...

std:: transform () и toupper (), без соответствующей функции

я попробовал код из этого вопроса C++ std:: transform() и toupper() ..почему это не удается? #include <iostream> #include <algorithm> int main() { std::string s="hello"; std::string out; std::transform(s.begin(), s.end(), std::back_inserter(out), std::toupper); std::cout << "hello in upper case: " << out << std::endl; } теоретически это должно было сработать, поскольку это один из примеров в книге Джосуттиса, но он не компилируется http://ideone.com/aYnf ...

Как получить трассировку стека для C++ с помощью gcc с информацией о номере строки?

мы используем трассировки стека в proprietary assert как макрос, чтобы поймать ошибки разработчика - когда ошибка поймана, трассировка стека печатается. Я нахожу пару gcc backtrace()/backtrace_symbols() методы недостаточны: имена исковеркали нет информации строка 1-я проблема может быть решена путем abi::_ _ cxa_demangle. однако 2-я проблема более жесткая. Я нашел замена backtrace_symbols (). Это лучше, чем GCC backtrace_symbols (), поскольку он может извлекать номера строк (если скомпилир ...