Запитання з тегом «c++»

C ++ - мова програмування загального призначення. Спочатку він був розроблений як розширення до C і має подібний синтаксис, але зараз це зовсім інша мова. Використовуйте цей тег для запитань про код (який потрібно) зібрати за допомогою компілятора C ++. Використовуйте тег, що стосується версії, для питань, пов’язаних із конкретною стандартною редакцією [C ++ 11], [C ++ 14], [C ++ 17] або [C ++ 20] тощо.

2
Що означає ітератор-> другий?
У C ++, який тип a std::map<>::iterator ? Ми знаємо, що об’єкт itтипу std::map<A,B>::iteratorмає перевантажений, operator ->який повертає a std::pair<A,B>*, і що std::pair<>має a firstі secondmember. Але, що відповідають цим двом членам, і чому ми маємо доступ до значення, що зберігається на карті як it->second?
157 c++  stl  iterator 

7
printf з std :: string?
Я розумію, що stringце член stdпростору імен, то чому ж відбувається таке? #include <iostream> int main() { using namespace std; string myString = "Press ENTER to quit program!"; cout << "Come up and C++ me some time." << endl; printf("Follow this command: %s", myString); cin.get(); return 0; } Кожен раз, …
157 c++  string  namespaces  printf  std 

2
С ++ успадкування - недоступна база?
Здається, я не в змозі використовувати базовий клас як параметр функції, чи я зіпсував свою спадщину? У моєму основному: int some_ftn(Foo *f) { /* some code */ }; Bar b; some_ftn(&b); І клас класу, що успадковує від Foo таким чином: class Bar : Foo { public: Bar(); //snip private: //snip …
157 c++  inheritance 

6
Переміщення захоплення в лямбда
Як я можу зафіксувати переміщення (також відоме як посилання на значення rvalue) у лямбі C ++ 11? Я намагаюся написати щось подібне: std::unique_ptr<int> myPointer(new int); std::function<void(void)> example = [std::move(myPointer)]{ *myPointer = 4; };


8
Чому бібліотеки та фреймворки C ++ ніколи не використовують смарт-покажчики?
Я прочитав у кількох статтях, що сировинні покажчики майже ніколи не повинні використовуватися. Натомість вони завжди повинні бути загорнуті всередину розумних покажчиків, незалежно від того, чи це вказівки масштабу або спільні. Однак я помітив, що такі рамки, як Qt, wxWidgets та бібліотеки, як Boost, ніколи не повертаються та не очікують …

7
std :: enable_if умовно скласти функцію члена
Я намагаюся отримати простий приклад для роботи, щоб зрозуміти, як користуватися std::enable_if. Прочитавши цю відповідь , я подумав, що придумати простий приклад не повинно. Я хочу використовувати std::enable_ifдля вибору двох функцій-членів і дозволити використовувати лише одну з них. На жаль, наступне не компілюється з gcc 4.7, а після годин та …
156 c++  templates  g++  c++11 


14
Що робить оператора Scala перевантаження «хорошим», а C ++ - «поганим»?
Перевантаження оператора в C ++ багато хто вважає поганою річчю (tm), і помилкою не повторюватися в нових мовах. Звичайно, це була одна особливість, яка спеціально випала при розробці Java. Тепер, коли я почав читати на Scala, я вважаю, що він дуже схожий на перевантаження оператора (хоча технічно він не має …

3
Значення абревіатури SSO в контексті std :: string
У питанні C ++ про оптимізацію та стиль коду кілька відповідей посилаються на "SSO" у контексті оптимізації копій std::string. Що означає ССО у цьому контексті? Очевидно, що не "єдиний знак увімкнено". "Спільна оптимізація рядків", можливо?
155 c++  string  optimization 


10
динамічний_cast та static_cast у C ++
Я дуже плутаю dynamic_castключове слово в C ++. struct A { virtual void f() { } }; struct B : public A { }; struct C { }; void f () { A a; B b; A* ap = &b; B* b1 = dynamic_cast<B*> (&a); // NULL, because 'a' is …
155 c++  dynamic-cast 

3
Коли використовувати std :: вперед для пересилання аргументів?
C ++ 0x показує приклад використання std::forward: template<class T> void foo(T&& arg) { bar(std::forward<T>(arg)); } Коли вигідно використовувати std::forwardзавжди? Крім того, він вимагає використання &&в декларації параметрів, чи він дійсний у всіх випадках? Я думав, що вам доведеться передати тимчасові функції до функції, якщо функція була оголошена &&в ній, тож …


12
Навіщо нам потрібен чистий віртуальний деструктор на C ++?
Я розумію необхідність віртуального деструктора. Але навіщо нам потрібен чистий віртуальний деструктор? В одній із статей C ++ автор згадував, що ми використовуємо чистий віртуальний деструктор, коли хочемо зробити клас абстрактним. Але ми можемо зробити абстрактний клас, зробивши будь-яку з функцій учасника чистою віртуальною. Тож мої запитання є Коли ми …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.