Tag: c++-faq

Bietet eine kollaborative community bearbeitet C++ – FAQ

Warum sehe ich seltsame Werte an, wenn ich drucken nicht initialisierten Variablen?

Anzahl der Antworten 6 Antworten
In der folgende code, der Variablen kein Anfangswert und bedruckt diese variable. int var; cout << var << endl; Ausgabe : 2514932 double var; cout << var << endl; Ausgabe : 1.23769 e-307 Ich verstehe nicht, diese

FAQ: Warum funktioniert dynamic_cast nur funktionieren, wenn eine Klasse hat mindestens 1 virtuelle Methode?

Anzahl der Antworten 3 Antworten
Diese nicht kompilieren in C++: class A { }; class B : public A { }; ... A *a = new B(); B *b = dynamic_cast<B*>(a); Ich FAQ-freundlich-diese Frage. Die Antwort ist kurz, aber ich denke, ziemlich

Was bedeutet es, wenn eine Undefinierte Referenz auf eine statische Memberfunktion?

Anzahl der Antworten 2 Antworten
Schrieb ich einfach eine Klasse mit statischen Daten-member, aber jetzt bin ich immer Fehler über "undefined references". Warum funktioniert das nicht? Was mache ich falsch? (Hinweis: Dies ist gedacht, um einen Eintrag zu Stack-Überlauf C++ FAQ. Wenn

Was genau ist der "als-ob" - Regel?

Anzahl der Antworten 3 Antworten
Wie der Titel sagt, Was genau ist der "als-ob" - Regel? Eine typische Antwort würde man erhalten: Die Regel, die erlaubt, dass jede und alle code-Transformationen, die sich nicht ändern das beobachtbare Verhalten des Programms Wir von

Was ist der Unterschied zwischen der standard-Bibliothek und der standard template library?

Anzahl der Antworten 1 Antworten
Sehe ich immer wieder Verweis auf die C++ - Standardbibliothek und C++ Standard Template Library (STL). Was ist der Unterschied zwischen Ihnen? Wikipedia erwähnt, dass Sie teilen einige Kopf-aber das ist über es. stackoverflow.com/tags/stl/info. Ersten mal ive

Bedeutung von 'const' Letzte in einer Funktion Deklaration einer Klasse?

Anzahl der Antworten 9 Antworten
Was ist der Sinn des const Meldungen wie diese? Die const verwirrt mich. class foobar { public: operator int () const; const char* foo() const; }; InformationsquelleAutor | 2009-04-15

Was ist der Punkt, von Funktionszeigern?

Anzahl der Antworten 16 Antworten
Ich habe Probleme sehen das Dienstprogramm von Funktionszeigern. Ich denke, es kann nützlich sein, in einigen Fällen (es gibt Sie, nachdem alle), aber ich kann nicht denken Sie an einen Fall, wo es besser bzw. unumgänglich, um

Ist es möglich, zu verhindern, dass stack-Zuweisung von einem Objekt und erlauben nur Sie, die instanziiert werden sollen, die mit 'neu'?

Anzahl der Antworten 6 Antworten
Ist es möglich, zu verhindern, dass stack-Zuweisung von einem Objekt und nur zulassen, dass er instiated mit "neuen" auf dem heap? Im Gegenteil, das kann auch interessant sein für die Leser: stackoverflow.com/questions/10985/... InformationsquelleAutor | 2008-09-24

Kann eine Memberfunktion der Klasse Vorlage virtuellen werden?

Anzahl der Antworten 11 Antworten
Ich habe gehört, dass C++ - Klassen-member-Funktion-Vorlagen können nicht virtuell sein. Ist das wahr? Wenn Sie können virtuell sein, was ist ein Beispiel für ein Szenario, in dem würde man mit einer solchen Funktion? Ich Stand vor

Warum sollte ich nicht #include <bits/stdc++.h>?

Anzahl der Antworten 3 Antworten
Ich habe eine Frage mit meinem code, dessen nur #include Richtlinie war Folgendes: #include <bits/stdc++.h> Mein Lehrer sagte mir, dies zu tun, aber in den Kommentaren wurde ich informiert, dass ich sollte nicht. Warum? Huh. Ich hätte

Die C++ - Idiome sind deprecated in C++11?

Anzahl der Antworten 9 Antworten
Mit dem neuen standard ist, gibt es neue Möglichkeiten, Dinge zu tun, und viele sind schöner als die alten Wege, aber der alte Weg ist noch in Ordnung. Es ist auch klar, dass der neue standard nicht

Was sind die Phasen der Compilierung eines C++ - Programm?

Anzahl der Antworten 3 Antworten
Sind die Phasen der Compilierung eines C++ - Programms von der Norm vorgegebenen? Wenn ja, was sind Sie? Wenn nicht, eine Antwort für eine weit verbreitete compiler (ich würde es vorziehen, MSVS) wäre toll. Ich Rede von

Wann machen Sie eine Art von nicht-beweglichen in C++11?

Anzahl der Antworten 4 Antworten
War ich überrascht dies nicht zeigen, bis in meine such-Ergebnisse, ich dachte, jemand habe Sie gefragt, bevor, angesichts der Nützlichkeit der move-Semantik in C++11: Wann muss ich (oder ist es eine gute Idee für mich zu) machen

Default-Konstruktor mit leeren Klammern

Anzahl der Antworten 9 Antworten
Gibt es irgendeinen guten Grund, die leere Runde Klammern (Klammern) ist nicht gültig für den Aufruf der Standard-Konstruktor in C++? MyObject object; //ok - default ctor MyObject object(blah); //ok MyObject object(); //error Mir scheint Sie zu geben

Warum ist sizeof für eine Struktur, die gleich der Summe der sizeof eines jeden Mitglieds?

Anzahl der Antworten 11 Antworten
Warum die sizeof Betreiber zurück eine Größe größer, für eine Struktur, die als die Summe der Größen der Struktur der Mitglieder? Siehe das C-FAQ auf Speicher alighnment. c-faq.com/struct/align.esr.html Anekdote: Es war eine wirkliche computer-virus, der seinen code

Warum können nur Vorlagen umgesetzt werden, die in der header-Datei?

Anzahl der Antworten 16 Antworten
Zitat von Die C++ standard library: a tutorial und Handbuch: Der einzige tragbare Möglichkeit der Verwendung von Vorlagen ist im moment zu implementieren, die Sie in header-Dateien durch die Verwendung von inline-Funktionen. Warum ist das so? (Klarstellung:

Template Spezialisierung bestimmter Mitglieder?

Anzahl der Antworten 2 Antworten
Ist es möglich, sich zu spezialisieren, insbesondere die Mitglieder der template-Klasse? So etwas wie: template <typename T,bool B> struct X { void Specialized(); }; template <typename T> void X<T,true>::Specialized() { ... } template <typename T> void X<T,false>::Specialized()

Warum ist "std::move` mit dem Namen `std::move"?

Anzahl der Antworten 2 Antworten
C++11 std::move(x) Funktion nicht wirklich nach überhaupt nichts. Es ist nur eine Besetzung an den r-Wert. Warum wurde das gemacht? Ist das nicht irreführend? Erschwerend kommt hinzu, dass die drei-argument std::move tatsächlich bewegt.. Und vergessen Sie nicht

Warum ist das "using namespace std;" als schlechte Praxis?

Anzahl der Antworten 30 Antworten
Mir wurde gesagt, von anderen, die schreiben using namespace std; im code falsch ist, und dass ich verwenden soll std::cout und std::cin direkt statt. Warum ist using namespace std; als eine schlechte Praxis? Ist es ineffizient oder

Welche Art von Zeiger verwende ich Wann?

Anzahl der Antworten 4 Antworten
Ok, also das Letzte mal schrieb ich " C++ für ein Leben std::auto_ptr war alle std-lib zur Verfügung hatte, und boost::shared_ptr war in aller Munde. Ich sah nie wirklich in die anderen smart-pointer-Typen-boost zur Verfügung. Ich verstehe,

Was sind die grundlegenden Regeln und Redewendungen für operator überladen?

Anzahl der Antworten 7 Antworten
Hinweis: die Antworten, Die gegeben wurden in einer bestimmten Reihenfolge, aber da viele Nutzer Sortieren Sie die Antworten nach Stimmen, sondern als die Zeit, die Sie gegeben wurden, hier ist ein index der Antworten in der Reihenfolge,

Warum nicht std::getline() überspringen Sie die Eingabe nach einem formatierten Extraktion?

Anzahl der Antworten 3 Antworten
Habe ich das folgende Stück code, dass der Benutzer aufgefordert, Ihren Namen und den Staat: #include <iostream> #include <string> int main() { std::string name; std::string state; if (std::cin >> name && std::getline(std::cin, state)) { std::cout << "Your

Was ist ein lambda-Ausdruck in C++11?

Anzahl der Antworten 8 Antworten
Was ist ein lambda-Ausdruck in C++11? Wann sollte ich Sie verwenden? Welche Klasse von problem, das Sie lösen nicht möglich war, vor Ihrer Einführung? Wenige Beispiele und Anwendungsfälle nützlich sein. Ich habe gesehen, ein Fall, in dem

Beheben build-Fehler aufgrund zirkuläre Abhängigkeit zwischen Klassen

Anzahl der Antworten 11 Antworten
Ich finde mich oft in einer situation, wo ich mich vor mehreren compilation/linker Fehler in einem C++ - Projekt durch einige schlechte design Entscheidungen (durch jemand anderen:) ), die dazu führen, zirkuläre Abhängigkeiten zwischen C++ - Klassen,

Was ist Der Dreisatz?

Anzahl der Antworten 8 Antworten
Was bedeutet kopieren eines Objekts bedeuten? Was sind die copy-Konstruktor und die Kopie Zuweisungsoperator? Wann muss ich erklären, Sie selbst? Wie kann ich verhindern, dass Objekte kopiert werden? Bitte Lesen dieser ganze thread und die c++-faq wiki-tag,

Was ist object slicing?

Anzahl der Antworten 17 Antworten
Jemand erwähnt es im IRC als das slicing-problem. InformationsquelleAutor Frankomania | 2008-11-08

Was ist der Unterschied zwischen einer definition und einer Erklärung?

Anzahl der Antworten 22 Antworten
Die Bedeutung der beiden entzieht sich mir. nicht wahr. Eine definition beide definiert und erklärt 😉 Ehrlich gesagt, ich hatte eine Menge ärger zu lernen, war es das, so finde ich nicht die Namen offensichtlich. Ich hatte

Was ist Der Dreisatz?

Anzahl der Antworten 8 Antworten
Was bedeutet kopieren eines Objekts bedeuten? Was sind die copy-Konstruktor und die Kopie Zuweisungsoperator? Wann muss ich erklären, Sie selbst? Wie kann ich verhindern, dass Objekte kopiert werden? Bitte Lesen dieser ganze thread und die c++-faq wiki-tag,

Was ist die richtige Antwort für cout << a++ << a;?

Anzahl der Antworten 4 Antworten
Kürzlich in einem interview war die nächste Ziel-Typ in Frage. int a = 0; cout << a++ << a; Antworten: ein. 10 b. 01 c. Undefiniertes Verhalten Antwortete ich, Wahl b, d.h. die Ausgabe "01". Aber zu

Was sind copy elision und return-Wert-Optimierung?

Anzahl der Antworten 4 Antworten
Was ist copy elision? Was ist (named) return value optimization? Was haben Sie zu bedeuten? In welchen Situationen Sie auftreten? Was sind Einschränkungen? Wenn Sie waren, verwiesen auf diese Frage, sind Sie wahrscheinlich auf der Suche nach

Was sind die Unterschiede zwischen struct und class in C++?

Anzahl der Antworten 29 Antworten
Diese Frage wurde bereits aufgefordert, im Rahmen von C#/.Net. Nun möchte ich lernen, die Unterschiede zwischen einem struct und einer Klasse in C++. Bitte besprechen Sie die technischen Unterschiede sowie Gründe für die Wahl der einen oder

Wie kann ich effizient wählen Sie eine Standard-Bibliothek container in C++11?

Anzahl der Antworten 4 Antworten
Es gibt ein bekanntes Bild (cheat sheet) namens "C++ Container-Wahl". Es ist ein Fluss-Diagramm, wählen Sie die beste container für die gewünschte Nutzung. Weiß jemand, ob es bereits ein C++11-version? Dies ist die Vorherige: Noch nie gesehen

Wie Entferne ich den code-Duplizierung zwischen ähnlichen const und non-const-member-Funktionen?

Anzahl der Antworten 16 Antworten
Sagen wir, ich habe folgende class X wo ich zurückgeben möchten, Zugang zu einem internen Mitglied: class Z { //details }; class X { std::vector<Z> vecZ; public: Z& Z(size_t index) { //massive amounts of code for validating

Warum ist die enum-Klasse bevorzugt, der über der Ebene enum?

Anzahl der Antworten 7 Antworten
Hörte ich ein paar Leute empfehlen, verwenden enum Klassen in C++ wegen Ihrer Art Sicherheit. Aber was bedeutet dies wirklich? Wenn jemand behauptet, dass einige Programmier-Konstrukt ist "böse", Sie versuchen, Sie zu entmutigen denken für sich selbst.

Warum ist volatile nicht als nützlich bei der multithreaded C-oder C++ - Programmierung?

Anzahl der Antworten 9 Antworten
Gezeigt, in diese Antwort ich vor kurzem gepostet, ich scheine verwirrt zu sein über das Dienstprogramm (oder deren fehlen) von volatile in multi-threaded-Programmierung zusammenhängen. Mein Verständnis ist dieses: jedes mal, wenn eine variable geändert werden kann, die

Was ist ein smart-pointer und Wann sollte ich Sie verwenden?

Anzahl der Antworten 13 Antworten
Was ist ein smart-pointer und Wann sollte ich Sie verwenden? Überprüfen Sie heraus diese Frage:<br> Smart Pointer: Oder wem gehört Sie baby Beachten Sie, dass die Implementierung von std::auto_ptr in Visual Studio 2005 ist schrecklich gebrochen. <br>http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=98871<br>

Was ist ein "Argument-Dependent Lookup (ADL aka, oder "Koenig-Lookup")?

Anzahl der Antworten 4 Antworten
Was sind einige gute Erklärungen zu dem, was argument dependent lookup? Viele Leute nennen es auch Koenig-Lookup als auch. Vorzugsweise würde ich gerne wissen: Warum ist es eine gute Sache? Warum ist es eine schlechte Sache? Wie

Iterator Aufhebungs-Regeln

Anzahl der Antworten 5 Antworten
Was sind die iterator-Aufhebungs-Regeln für C++ Container? Vorzugsweise in einer zusammenfassenden Liste format. (Hinweis: Dies ist gedacht, um einen Eintrag zu Stack-Überlauf C++ FAQ. Wenn Sie möchten, dass die Kritik der Idee der Bereitstellung eines FAQ in

Was ist der Unterschied zwischen "STL" und "C++ Standard-Bibliothek"?

Anzahl der Antworten 5 Antworten
Jemand brachte dieser Artikel, um meine Aufmerksamkeit, dass Ansprüche (ich bin paraphrasieren) das STL-Begriff missbraucht wird, um beziehen sich auf die gesamte C++ Standard-Bibliothek instead of die Teile, die aufgenommen wurden von der SGI STL. (...) es

Was ist die richtige Erklärung der wichtigsten?

Anzahl der Antworten 5 Antworten
Was ist die richtige Signatur des main - Funktion in C++? Was ist der richtige Rückgabetyp, und was bedeutet es, einen Wert zurückgegeben main? Was sind die erlaubten parameter-Typen, und was sind Ihre Bedeutungen? Ist dieses system-spezifische?

Warum ist iostream::eof innerhalb einer Schleife ist die Bedingung (D. H. " beim (!stream.eof())`) als falsch?

Anzahl der Antworten 4 Antworten
Ich habe gerade einen Kommentar in diese Antwort sagen, dass mit iostream::eof in einer Schleife, Bedingung ist "nahezu sicher falsch". Ich verwende in der Regel so etwas wie while(cin>>n) - ich glaube, das implizit prüft EOF. Warum

Was sind die Unterschiede zwischen einer Zeiger-variable und eine Referenz-variable in C++?

Anzahl der Antworten 30 Antworten
Ich weiß Verweise sind syntaktischer Zucker, also code ist einfacher zu Lesen und zu schreiben. Aber was sind die Unterschiede? Zusammenfassung von Antworten und links unten: Ein Zeiger kann neu belegt werden eine beliebige Anzahl von Zeiten

Was ist der neugierig recurring template pattern (CRTP)?

Anzahl der Antworten 5 Antworten
Ohne Bezugnahme auf ein Buch, kann mir jemand bitte eine gute Erklärung für CRTP mit einem code-Beispiel? Lesen CRTP Fragen auf ALSO: stackoverflow.com/questions/tagged/crtp. Das könnte Ihnen einige Idee. Wenn er das tut, findet er seine eigene Frage.

Was ist Der Dreisatz?

Anzahl der Antworten 8 Antworten
Was bedeutet kopieren eines Objekts bedeuten? Was sind die copy-Konstruktor und die Kopie Zuweisungsoperator? Wann muss ich erklären, Sie selbst? Wie kann ich verhindern, dass Objekte kopiert werden? Bitte Lesen dieser ganze thread und die c++-faq wiki-tag,

Wo und warum muss ich die "Vorlage" und "typename" keywords?

Anzahl der Antworten 6 Antworten
In Vorlagen, wo und warum tun, ich habe zu typename und template auf abhängige Namen? Was genau angewiesen sind Namen sowieso? Ich habe den folgenden code: template <typename T, typename Tail> //Tail will be a UnionNode too.

Was ist "rvalue Referenz für *diese"?

Anzahl der Antworten 3 Antworten
Kam über einen Vorschlag namens "rvalue Referenz für *diese" ertönt C++11-status-Seite. Ich habe einiges gelesen über rvalue-Referenzen und verstanden, aber ich glaube nicht, dass ich weiß, über diese. Ich konnte auch nicht viel Ressourcen auf dem web

Was sind die neuen features in C++17?

Anzahl der Antworten 1 Antworten
C++17 ist nun feature complete, also kaum erleben große Veränderungen. Hunderte von Vorschlägen wurden vorgebracht für C++17. Welche features wurden Hinzugefügt, um C++ in C++17? Bei einem C++ - compiler unterstützt C++1z", welche features verfügbar sein, wenn

Welche Art von Zeiger verwende ich Wann?

Anzahl der Antworten 4 Antworten
Ok, also das Letzte mal schrieb ich " C++ für ein Leben std::auto_ptr war alle std-lib zur Verfügung hatte, und boost::shared_ptr war in aller Munde. Ich sah nie wirklich in die anderen smart-pointer-Typen-boost zur Verfügung. Ich verstehe,

Warum habe ich Zugriff auf template-Basis-Klasse-Mitglieder durch den this-Zeiger?

Anzahl der Antworten 3 Antworten
Wenn die Kurse unten waren, nicht Vorlagen, konnte ich einfach haben x im derived Klasse. Allerdings mit dem code unten, habe ich müssen Verwendung this->x. Warum? template <typename T> class base { protected: int x; }; template

Warum scheinbar bedeutungslos do-while-und if-else-Anweisungen in Makros?

Anzahl der Antworten 11 Antworten
In vielen C/C++ - Makros sehe ich den code des Makros, eingehüllt in das, was scheint wie eine sinnlose do while Schleife. Hier sind Beispiele. #define FOO(X) do { f(X); g(X); } while (0) #define FOO(X) if