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

C ++ - это язык программирования общего назначения. Первоначально он был разработан как расширение C и имеет аналогичный синтаксис, но теперь это совершенно другой язык. Используйте этот тег для вопросов о коде (который будет скомпилирован с помощью компилятора C ++). Используйте тег, зависящий от версии, для вопросов, связанных с конкретной редакцией стандарта [C ++ 11], [C ++ 14], [C ++ 17] или [C ++ 20] и т. Д.


9
C ++ «виртуальное» ключевое слово для функций в производных классах. Это необходимо?
С определением структуры, приведенным ниже ... struct A { virtual void hello() = 0; }; Подход № 1: struct B : public A { virtual void hello() { ... } }; Подход № 2: struct B : public A { void hello() { ... } }; Есть ли разница между …

4
умные указатели (повышение) объяснил
В чем разница между следующим набором указателей? Когда вы используете каждый указатель в рабочем коде, если вообще? Примеры будут оценены! scoped_ptr shared_ptr weak_ptr intrusive_ptr Вы используете повышение в производственном коде?

4
Почему переопределенная функция в производном классе скрывает другие перегрузки базового класса?
Рассмотрим код: #include <stdio.h> class Base { public: virtual void gogo(int a){ printf(" Base :: gogo (int) \n"); }; virtual void gogo(int* a){ printf(" Base :: gogo (int*) \n"); }; }; class Derived : public Base{ public: virtual void gogo(int* a){ printf(" Derived :: gogo (int*) \n"); }; }; int …

5
Как добавить компоновщик или флаг компиляции в файл CMake?
Я использую arm-linux-androideabi-g++ компилятор. Когда я пытаюсь скомпилировать простое «Привет, мир!» Программа компилируется нормально. Когда я тестирую его, добавляя простую обработку исключений в этот код, он тоже работает (после добавления -fexceptions... Я думаю, по умолчанию он отключен). Это для устройства Android, и я хочу использовать только CMake, а не ndk-build …
220 c++  cmake 

14
Сколько это слишком много с ключевым словом auto C ++ 11?
Я использовал новое autoключевое слово, доступное в стандарте C ++ 11 для сложных шаблонных типов, для которого, как мне кажется, оно было разработано. Но я также использую его для таких вещей, как: auto foo = std::make_shared<Foo>(); И более скептически для: auto foo = bla(); // where bla() return a shared_ptr<Foo> …

14
Как использовать перечисления в C ++
Предположим, у нас есть что-то enumвроде следующего: enum Days {Saturday, Sunday, Tuesday, Wednesday, Thursday, Friday}; Я хочу создать экземпляр этого enumи инициализировать его с надлежащим значением, поэтому я делаю: Days day = Days.Saturday; Теперь я хочу проверить мою переменную или экземпляр с существующим enumзначением, поэтому я делаю: if (day == …
218 c++  enums 

3
Почему транспонирование матрицы 512x512 намного медленнее, чем транспонирование матрицы 513x513?
После проведения некоторых экспериментов с квадратными матрицами разных размеров возникла закономерность. Неизменно транспонирование матрицы размера 2^nпроисходит медленнее, чем транспонирование матрицы размера2^n+1 . Для небольших значений nразница не является существенной. Однако большие различия возникают по значению 512. (по крайней мере, для меня) Отказ от ответственности: я знаю, что функция фактически не …

4
Почему этот оператор if, объединяющий присваивание и проверку на равенство, возвращает true?
Я думал о некоторых ошибках новичка, и я закончил тем, что на ifутверждении. Я немного расширил код до этого: int i = 0; if (i = 1 && i == 0) { std::cout << i; } Я видел , что ifоператор возвращает верно, и это cout«S , iкак 1. Если …
217 c++  if-statement 

2
Почему я не могу push_back уникальный_птр в вектор?
Что не так с этой программой? #include <memory> #include <vector> int main() { std::vector<std::unique_ptr<int>> vec; int x(1); std::unique_ptr<int> ptr2x(&x); vec.push_back(ptr2x); //This tiny command has a vicious error. return 0; } Ошибка: In file included from c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/mingw32/bits/c++allocator.h:34:0, from c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/bits/allocator.h:48, from c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/memory:64, from main.cpp:6: c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/bits/unique_ptr.h: In member function 'void __gnu_cxx::new_allocator<_Tp>::construct(_Tp*, const _Tp&) …


4
C ++ Loop through Map
Я хочу перебрать каждый элемент, map<string, int>не зная ни одного из его значений или ключей string-int. Что у меня так далеко: void output(map<string, int> table) { map<string, int>::iterator it; for (it = table.begin(); it != table.end(); it++) { //How do I access each element? } }
217 c++  dictionary 

3
Почему определения указателей на функции работают с любым количеством амперсандов '&' или звездочек '*'?
Почему следующие работы? void foo() { cout << "Foo to you too!\n"; }; int main() { void (*p1_foo)() = foo; void (*p2_foo)() = *foo; void (*p3_foo)() = &foo; void (*p4_foo)() = *&foo; void (*p5_foo)() = &*foo; void (*p6_foo)() = **foo; void (*p7_foo)() = **********************foo; (*p1_foo)(); (*p2_foo)(); (*p3_foo)(); (*p4_foo)(); (*p5_foo)(); (*p6_foo)(); …
216 c++  c  function-pointers 

15
C ++ сортировка и отслеживание индексов
Используя C ++ и, надеюсь, стандартную библиотеку, я хочу отсортировать последовательность выборок в порядке возрастания, но я также хочу запомнить исходные индексы новых выборок. Например, у меня есть набор или вектор, или матрица образцов A : [5, 2, 1, 4, 3]. Я хочу отсортировать их так, чтобы они были B …
216 c++  sorting  stl  indexing 

6
make_unique и идеальная пересылка
Почему std::make_uniqueв стандартной библиотеке C ++ 11 нет шаблона функции? я нахожу std::unique_ptr<SomeUserDefinedType> p(new SomeUserDefinedType(1, 2, 3)); немного многословно Разве следующее не будет намного лучше? auto p = std::make_unique<SomeUserDefinedType>(1, 2, 3); Это newхорошо скрывает и упоминает тип только один раз. Во всяком случае, вот моя попытка реализации make_unique: template<typename T, …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.