C++ - Klassen-Initialisierungs-Liste Beispiel

Werde ich das Kapitel 17 in der neuen Stroustrup Buch und ich bin verwirrt durch die Initialisierung einer Klasse mit einer Initialisierungs-Liste.

Beispiel:

in .hpp:

class A
{
    public:
        A() : _plantName(std::string s), _growTimeMinutes(int 1);
        virtual ~A();

    private:
        std::string _plantName;
        int _growTimeMinutes;
};

in .cpp:

A::A() : _plantName(std::string s), _growTimeMinutes(int i)
{

}

oder ist es in .cpp:

A::A(std::string s, int i) : _plantName(std::string s), _growTimeMinutes(int i)
{

}

und ruft:

A a {"Carrot", 10};

Lernte ich c++ zurück im Jahr 1998 und haben nur programmiert, in der es auf und ab über die Jahre, bis vor kurzem. Wie lange ist es her, dass Sie diese Sachen ändern? Ich weiß, ich könnte es immer noch tun, dass die ältere Methode, aber ich möchte wirklich etwas neues zu lernen!

Diese waren schon lange vor C++11. Die brace-Initialisierung nicht.
Kannst du bitte Bearbeiten Sie diese und versuchen zu klären, was Ihre eigentliche Frage ist? Die verschiedenen Konstruktor-Implementierungen und-Deklarationen werden alle versuchen zu initialisieren Mitglieder, die nicht existieren, so ist es schwer zu sagen, welche Teil, den Sie gerade Fragen.
Vielleicht hilft: stackoverflow.com/questions/1711990/...
Brace-Initialisierung wurde in C++03, aber nur auf Strukturen und Klassen, die entsprechen, um die Plain Old Data (POD) definition.
Ich war Art des Denkens, wie ich es gesagt habe. Ich könnte ja sagen, die einheitliche Initialisierung, aber dann ist die OP hätte keine Ahnung wovon ich Rede. Ich dachte es wäre eindeutig genug, da der POD-Regel kann nicht gelten hier.

InformationsquelleAutor Jason | 2013-06-02

Schreibe einen Kommentar