Als «c++» getaggte Fragen

C ++ ist eine universelle Programmiersprache. Es wurde ursprünglich als Erweiterung von C entwickelt und hat eine ähnliche Syntax, ist aber jetzt eine völlig andere Sprache. Verwenden Sie dieses Tag für Fragen zu Code, der mit einem C ++ - Compiler kompiliert werden soll. Verwenden Sie ein versionierungsspezifisches Tag für Fragen zu einer bestimmten Standardversion [C ++ 11], [C ++ 14], [C ++ 17] oder [C ++ 20] usw.

2
C ++ Vererbung - unzugängliche Basis?
Ich kann anscheinend keine Basisklasse als Funktionsparameter verwenden. Habe ich meine Vererbung durcheinander gebracht? Ich habe folgendes in meinem Haupt: int some_ftn(Foo *f) { /* some code */ }; Bar b; some_ftn(&b); Und die Klasse Bar, die so von Foo erbt: class Bar : Foo { public: Bar(); //snip private: …
157 c++  inheritance 

6
Verschieben Sie die Erfassung in Lambda
Wie kann ich in einem C ++ 11-Lambda durch Verschieben (auch als r-Wert-Referenz bezeichnet) erfassen? Ich versuche so etwas zu schreiben: std::unique_ptr<int> myPointer(new int); std::function<void(void)> example = [std::move(myPointer)]{ *myPointer = 4; };



8
Warum verwenden C ++ - Bibliotheken und Frameworks niemals intelligente Zeiger?
Ich habe in einigen Artikeln gelesen, dass rohe Zeiger fast nie verwendet werden sollten. Stattdessen sollten sie immer in intelligente Zeiger eingeschlossen werden, unabhängig davon, ob es sich um Gültigkeitsbereichs- oder gemeinsam genutzte Zeiger handelt. Ich bemerkte jedoch, dass Frameworks wie Qt, wxWidgets und Bibliotheken wie Boost niemals intelligente Zeiger …


7
std :: enable_if zum bedingten Kompilieren einer Mitgliedsfunktion
Ich versuche, ein einfaches Beispiel zum Arbeiten zu bringen, um zu verstehen, wie man es benutzt std::enable_if. Nachdem ich diese Antwort gelesen hatte , dachte ich, es sollte nicht zu schwierig sein, ein einfaches Beispiel zu finden. Ich möchte verwenden std::enable_if, um zwischen zwei Elementfunktionen zu wählen und nur eine …
156 c++  templates  g++  c++11 




7
Schneller Weg, um einen Vektor in einen anderen zu kopieren
Ich bevorzuge zwei Möglichkeiten: void copyVecFast(const vec<int>& original) { vector<int> newVec; newVec.reserve(original.size()); copy(original.begin(),original.end(),back_inserter(newVec)); } void copyVecFast(vec<int>& original) { vector<int> newVec; newVec.swap(original); } Wie machst du das?
155 c++  algorithm  stl 

10
dynamic_cast und static_cast in C ++
Ich bin ziemlich verwirrt mit dem dynamic_castSchlüsselwort in 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 …
155 c++  dynamic-cast 

3
Wann sollte std :: forward verwendet werden, um Argumente weiterzuleiten?
C ++ 0x zeigt ein Beispiel für die Verwendung von std::forward: template<class T> void foo(T&& arg) { bar(std::forward<T>(arg)); } Wann ist es immer vorteilhaft zu verwenden std::forward? Außerdem muss es &&in der Parameterdeklaration verwendet werden. Ist es in allen Fällen gültig? Ich dachte, Sie &&müssten temporäre Funktionen an eine Funktion …


12
Warum brauchen wir in C ++ einen reinen virtuellen Destruktor?
Ich verstehe die Notwendigkeit eines virtuellen Destruktors. Aber warum brauchen wir einen reinen virtuellen Destruktor? In einem der C ++ - Artikel hat der Autor erwähnt, dass wir einen reinen virtuellen Destruktor verwenden, wenn wir eine Klasse abstrakt machen möchten. Wir können eine Klasse jedoch abstrakt machen, indem wir jedes …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.