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 …
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?
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 …
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'); …
Es gibt ein bekanntes Bild (Spickzettel) namens "C ++ Container Choice". Es ist ein Flussdiagramm, um den besten Container für die gewünschte Verwendung auszuwählen. Weiß jemand, ob es bereits eine C ++ 11-Version davon gibt? Dies ist der vorherige:
Ich habe zuerst C # gelernt und jetzt beginne ich mit C ++. Soweit ich weiß, newähnelt der Operator in C ++ nicht dem in C #. Können Sie den Grund für den Speicherverlust in diesem Beispielcode erklären? class A { ... }; struct B { ... }; A *object1 …
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 …
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, …
Ich war überrascht, dass dies nicht in meinen Suchergebnissen angezeigt wurde. Ich dachte, jemand hätte dies zuvor gefragt, da die Verschiebungssemantik in C ++ 11 nützlich ist: Wann muss ich (oder ist es eine gute Idee für mich) eine Klasse in C ++ 11 unbeweglich machen? ( Andere Gründe als …
Ich habe eine Weile programmiert, aber es waren hauptsächlich Java und C #. Ich musste das Gedächtnis nie alleine verwalten. Ich habe vor kurzem angefangen, in C ++ zu programmieren, und bin ein wenig verwirrt darüber, wann ich Dinge auf dem Stapel speichern soll und wann ich sie auf dem …
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 …
Da diese Frage jede Woche gestellt wird, kann diese FAQ vielen Benutzern helfen. So konvertieren Sie eine Ganzzahl in eine Zeichenfolge in C ++ So konvertieren Sie eine Zeichenfolge in C ++ in eine Ganzzahl So konvertieren Sie eine Gleitkommazahl in eine Zeichenfolge in C ++ So konvertieren Sie eine …
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 …
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 …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.