Tag: ctor-initializer

Konstruktorinitialisierungsliste In C ++ ist die Initialisierungsliste die Stelle, an der die Initialisierung des Objekts stattfinden soll. Hier werden die Konstruktoren für Basisklassen und Member aufgerufen. Mitglieder werden in derselben Reihenfolge initialisiert, in der sie deklariert sind, und nicht so, wie sie in der Initialisierungsliste erscheinen.

C++: Sollte ich initialisieren Zeiger-Mitglieder zugeordnet sind, die im Konstruktor Körper auf NULL?

Anzahl der Antworten 3 Antworten
Angenommen ich habe: //MyClass.h class MyClass { public: MyClass(); private: Something *something_; } //MyClass.cpp MyClass::MyClass() { something_ = new Something(); } Sollte ich initialisieren something_ auf NULL (oder 0) im Konstruktor mit Initialisierungsliste den Konstruktor MyClass? Oder

Wie kann eine Klasse Felder initialisiert werden?

Anzahl der Antworten 4 Antworten
Ein bisschen eine grundlegende Frage, aber ich Schwierigkeiten beim aufspüren eine definitive Antwort. Sind Initialisierer-Listen der nur Methode zum initialisieren der Klasse Felder in C++, abgesehen von der Zuordnung der Methoden? In den Fall bin ich mit

Hat eine const-Referenz in der Klasse verlängern die Lebensdauer einer temporären?

Anzahl der Antworten 5 Antworten
Warum dies so: #include <string> #include <iostream> using namespace std; class Sandbox { public: Sandbox(const string& n) : member(n) {} const string& member; }; int main() { Sandbox sandbox(string("four")); cout << "The answer is: " << sandbox.member

Wie initialisiert man ein const-Feld im Konstruktor?

Anzahl der Antworten 6 Antworten
Vorstellen, ich habe eine C++ - Klasse " Foo " und eine Klasse Bar, die erstellt werden, mit einem Konstruktor, in dem ein Foo-Zeiger übergeben wird, und dieser Zeiger soll bleiben unveränderlich in der Bar-Instanz-Lebenszyklus. Was ist

Elementinitialisierung bei Verwendung des delegierten Konstruktors

Anzahl der Antworten 1 Antworten
Habe ich den Versuch gestartet, aus der C++11 standard, und ich fand diese Frage, die beschreibt, wie rufen Sie Ihren ctor von einem anderen ctor in der gleichen Klasse zu vermeiden, dass die init-Methode oder dergleichen. Jetzt

Was ist diese seltsame Kolon-Member (":") Syntax im Konstruktor?

Anzahl der Antworten 12 Antworten
Vor kurzem habe ich ein Beispiel gesehen, wie die folgenden: #include <iostream> class Foo { public: int bar; Foo(int num): bar(num) {}; }; int main(void) { std::cout << Foo(42).bar << std::endl; return 0; } Was bedeutet diese

Initialisieren eines Elementarrays im Konstruktorinitialisierer

Anzahl der Antworten 6 Antworten
class C { public: C() : arr({1,2,3}) //doesn't compile {} /* C() : arr{1,2,3} //doesn't compile either {} */ private: int arr[3]; }; Ich glaube, der Grund ist, dass arrays können initialisiert werden, nur mit = syntax:

Bedeutet eine konstante Referenz das Leben eines Temporären?

Anzahl der Antworten 5 Antworten
Warum dies so: #include <string> #include <iostream> using namespace std; class Sandbox { public: Sandbox(const string& n) : member(n) {} const string& member; }; int main() { Sandbox sandbox(string("four")); cout << "The answer is: " << sandbox.member