Als «c++-faq» getaggte Fragen

Bietet eine kollaborative, von der Community bearbeitete C ++ - FAQ

9
Warum wird flüchtig in der Multithread-C- oder C ++ - Programmierung nicht als nützlich angesehen?
Wie in dieser Antwort, die ich kürzlich gepostet habe, gezeigt wurde, bin ich verwirrt über den Nutzen (oder das Fehlen davon) volatilein Multithread-Programmierkontexten. Mein Verständnis ist folgendes: Jedes Mal, wenn eine Variable außerhalb des Kontrollflusses eines Codes, der darauf zugreift, geändert werden kann, sollte diese Variable als solche deklariert werden …

7
Was sind die Vorteile von nullptr?
Dieser Code macht konzeptionell dasselbe für die drei Zeiger (sichere Zeigerinitialisierung): int* p1 = nullptr; int* p2 = NULL; int* p3 = 0; Was sind also die Vorteile der Zuweisung von Zeigern nullptrgegenüber der Zuweisung von Werten NULLoder 0?
163 c++  c++11  null  c++-faq  nullptr 

5
Was ist die richtige Erklärung von main?
Was ist die richtige Signatur der mainFunktion in C ++? Was ist der richtige Rückgabetyp und was bedeutet es, einen Wert von zurückzugeben main? Was sind die zulässigen Parametertypen und welche Bedeutung haben sie? Ist das systemspezifisch? Haben sich diese Regeln im Laufe der Zeit geändert? Was passiert, wenn ich …
147 c++  main  c++-faq 

3
Welche Iomanip-Manipulatoren sind "klebrig"?
Ich hatte kürzlich ein Problem beim Erstellen eines stringstream, da ich fälschlicherweise angenommen habe, dass std::setw()dies den Stringstream bei jeder Einfügung beeinflussen würde, bis ich ihn explizit geändert habe. Es wird jedoch nach dem Einfügen immer deaktiviert. // With timestruct with value of 'Oct 7 9:04 AM' std::stringstream ss; ss.fill('0'); …
140 c++  c++-faq 



7
Polymorphismus in C ++
SO VIEL ICH WEISS: C ++ bietet drei verschiedene Arten von Polymorphismus. Virtuelle Funktionen Überladung des Funktionsnamens Überlastung des Bedieners Zusätzlich zu den drei oben genannten Arten von Polymorphismus gibt es andere Arten von Polymorphismus: Laufzeit Kompilierungszeit Ad-hoc-Polymorphismus parametrischer Polymorphismus Ich weiß, dass Laufzeitpolymorphismus durch virtuelle Funktionen und statischer Polymorphismus …

5
Überladen von Mitgliedszugriffsoperatoren -> ,. *
Ich die meisten Betreiber Überlastung verstehen, mit Ausnahme der Mitgliedszugangsbetreiber ->, .*,->* usw. Was wird insbesondere an diese Operatorfunktionen übergeben und was sollte zurückgegeben werden? Woher weiß die Bedienerfunktion (z. B. operator->(...)), auf welches Mitglied verwiesen wird? Kann es wissen? Muss es überhaupt wissen? Gibt es schließlich irgendwelche konstanten Überlegungen, …




3
Welche C ++ Smart Pointer-Implementierungen sind verfügbar?
Vergleiche, Vor- und Nachteile und wann zu verwenden? Dies ist ein Spin-off aus einem Garbage Collection-Thread, in dem eine meiner Meinung nach einfache Antwort viele Kommentare zu bestimmten Smart-Pointer-Implementierungen generierte. Es schien also sinnvoll, einen neuen Beitrag zu beginnen. Letztendlich stellt sich die Frage, welche verschiedenen Implementierungen von Smart Pointern …


8
Warum befinden sich C ++ - Inline-Funktionen im Header?
Hinweis: Hier geht es nicht darum, wie Inline-Funktionen verwendet werden oder wie sie funktionieren, sondern darum, warum sie so ausgeführt werden, wie sie sind. Die Deklaration einer Klassenmitgliedsfunktion muss keine Funktion als definieren inline, sondern ist nur die tatsächliche Implementierung der Funktion. Zum Beispiel in der Header-Datei: struct foo{ void …

4
Überladen von std :: swap ()
std::swap()wird von vielen Standardcontainern (wie std::listund std::vector) beim Sortieren und sogar beim Zuweisen verwendet. Die Standardimplementierung von swap()ist jedoch sehr verallgemeinert und für benutzerdefinierte Typen eher ineffizient. Somit kann Effizienz durch Überladen std::swap()mit einer benutzerdefinierten typspezifischen Implementierung erzielt werden. Aber wie können Sie es implementieren, damit es von den Standardcontainern …

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.