C ++: Konstruktor versus Initialisierungsliste in struct / class

8

Ein Objekt einer Struktur / Klasse (das keinen -Konstruktor hat) kann mit einer Initialisierungsliste erstellt werden. Warum ist dies in struct / class mit constructor nicht erlaubt?

%Vor%     
Anycorn 19.01.2010, 18:01
quelle

2 Antworten

13

Nein, ein Objekt mit einem Konstruktor wird nicht mehr als POD (Plain Old Data) betrachtet. Objekte dürfen nur andere POD-Typen als nicht statische Elemente enthalten (einschließlich Basistypen). Ein POD kann statische Funktionen und statische komplexe Datenelemente haben.

Beachten Sie, dass der bevorstehende C ++ - Standard es Ihnen ermöglicht, Initialisierungslisten zu definieren, die es ermöglichen, Nicht-POD-Objekte mit geschweiften Klammern zu initialisieren.

    
Collin Dauphinee 19.01.2010, 18:04
quelle
0

Wenn Sie mit Ihrer Frage fragen wollen: "Kann ich das tun?"

%Vor%

... dann lautet die Antwort nein. C ++ lässt dies nicht zu.

    
John Dibling 19.01.2010 18:11
quelle