◐ Shell
clean mode source ↗

Initializer list – cppreference.com

Aus cppreference.com

<metanoindex/>

(Nicht zu verwechseln mit std :: initializer_list zu verwechseln)

Original:

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Sie sind der Teil eines Konstruktors, die für Mitgliedes und Vorfahren Initialisierung

Original:

They are the part of a constructor which is responsible for member and ancestor initialization

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Syntax

constructor_signature : member_constructor_calls { constructor_body }

Erklärung

Die Initialisierung Liste ist der Ort, wo der Initialisierung des Objekts auftreten sollte, gibt es, wo die Konstruktoren für Basisklassen und Mitglieder genannt werden .

Original:

The initializer list is the place where initialization of the object should occur, there is where the constructors for base classes and members are called.

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Die Mitglieder werden in der gleichen Reihenfolge initialisiert, wie sie deklariert sind, nicht wie sie in der Initialisierungsliste erscheinen .

Original:

Members are initialized in the same order as they are declared, not as they appear in the initializer list.

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Wenn ein Parameter im Konstruktor hat den gleichen Namen wie eines der Mitglieder, die Zweideutigkeit dieser Kennung in einer Konstruktor-Aufruf innerhalb des intializer Liste übergeben wird gelöst Wahl der Parameter (und nicht das Mitglied) .

Original:

If a parameter in the constructor has the same name as one of the members, the ambiguity of that identifier being passed in a constructor call inside the intializer list is resolved choosing the parameter (and not the member).

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Oder Basisklassen nicht in der Liste vorhanden sein wird standardmäßig gebaut

Original:

Members or base classes not present in the list will be default constructed

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Beispiel

struct Class : public Base
{
    int x;
    int y;

    Class ( int x )
      : Base ( 123 ), // initialize base class
        x ( x ),      // x (member) is initialized with x (parameter)
        y ( 0 )       // y initialized to 0
    {}                // empty constructor body

    Class ( double a )
      : y ( a+1 ),
        x ( y ) // x will be initialized before y, this means that its value here is undefined
    {}          // No base class constructor in list, this is the same as calling Base()

    Class()
    try
      : Base ( 789 ),
        x ( 0 ),
        y ( 0 )
    {
        // no exception
    }
    catch (...)
    {
        // exception occurred on initialization
    }
};