Als «c++» getaggte Fragen

350
Muss ich den virtuellen Basiszerstörer explizit aufrufen?

Wenn ich eine Klasse in C ++ überschreibe (mit einem virtuellen Destruktor), implementiere ich den Destruktor erneut als virtuell für die erbende Klasse, aber muss ich den Basisdestruktor aufrufen? Wenn ja, stelle ich mir das so vor ... MyChildClass::~MyChildClass() // virtual in header { //...

349
Was ist der Nutzen von `enable_shared_from_this`?

Ich bin enable_shared_from_thisbeim Lesen der Boost.Asio-Beispiele darauf gestoßen, und nachdem ich die Dokumentation gelesen habe, bin ich immer noch verloren, wie dies richtig verwendet werden sollte. Kann mir bitte jemand ein Beispiel geben und erklären, wann die Verwendung dieser Klasse...

347
Wie genau funktioniert __attribute __ ((Konstruktor))?

Es scheint ziemlich klar zu sein, dass es die Dinge einrichten soll. Wann genau läuft es? Warum gibt es zwei Klammern? Ist __attribute__eine Funktion? Ein Makro? Syntax? Funktioniert das in C? C ++? Muss die Funktion, mit der es funktioniert, statisch sein? Wann läuft __attribute__((destructor))?...

337
Warum hat C ++ keine Reflexion?

Dies ist eine etwas bizarre Frage. Mein Ziel ist es, die Sprachentwurfsentscheidung zu verstehen und die Reflexionsmöglichkeiten in C ++ zu identifizieren. Warum hat das C ++ - Sprachkomitee keine Reflexion in der Sprache implementiert? Ist die Reflexion in einer Sprache, die nicht auf einer...

337
Wann sollten Sie die constexpr-Funktion in C ++ 11 verwenden?

Es scheint mir, dass eine "Funktion, die immer 5 zurückgibt" die Bedeutung von "Aufrufen einer Funktion" bricht oder verwässert. Es muss einen Grund oder eine Notwendigkeit für diese Funktion geben, sonst wäre es nicht in C ++ 11. Warum ist es dort? // preprocessor. #define MEANING_OF_LIFE 42 //...

335
std :: string to char *

Ich möchte einen std :: string in einen Datentyp char * oder char [] konvertieren . std::string str = "string"; char* chr = str; Ergebnisse in: "Fehler: 'std :: string' kann nicht in 'char' konvertiert werden ..." . Welche Methoden gibt es

334
Wofür sind Inline-Namespaces?

C ++ 11 erlaubt inline namespaces, deren Mitglieder sich ebenfalls automatisch im Gehäuse befinden namespace. Ich kann mir keine nützliche Anwendung vorstellen - kann jemand bitte ein kurzes, prägnantes Beispiel für eine Situation geben, in der eine inline namespacebenötigt wird und in der es die...