Haben integrierte Typen Konstruktoren?
Wenn ein temporärer int-Wert mit 0 initialisiert wird, liegt das daran, dass int() aufgerufen wird der Standardkonstruktor? Dies ist ein häufiges Missverständnis, da integrierte Typen keine Konstruktoren haben.
Wertinitialisierung vs. Standardkonstruktor
Wertinitialisierung, ein relativ neues Konzept, initialisiert a temporäres Objekt mit einem für seinen Typ geeigneten Wert. Bei integrierten Typen ist dieser Wert 0 für Ganzzahlen.
Anweisung von TC PL
Abschnitt 10.4.2 von TC PL besagt, dass integrierte Typen auch über Standardwerte verfügen Konstrukteure. Allerdings ist diese Aussage im Zusammenhang mit C 98 und C 03 wohl falsch.
Klarstellung von Bjarne Stroustrup
Bei einer persönlichen Kontaktaufnahme stellte Bjarne Stroustrup klar, dass er gebaute- in Typen, die im konzeptionellen Sinne über Konstruktoren verfügen, obwohl es keine tatsächlichen Konstruktoraufrufe gibt. Diese Konzeptualisierung basiert auf ihrem konstruktorähnlichen Verhalten, beispielsweise der Initialisierung von Werten.
Fazit
Technisch gesehen haben integrierte Typen keine Konstruktoren. Die zu ihrer Initialisierung verwendete Syntax (z. B. int{5}, int{}) ist jedoch identisch mit der von Konstruktoren. Aus praktischen Gründen ist es daher sinnvoll, sich integrierte Typen so vorzustellen, dass sie über Standardkonstruktoren verfügen, die ihre Werte während der Wertinitialisierung entsprechend initialisieren.
Das obige ist der detaillierte Inhalt vonVerfügen integrierte Typen in C über Konstruktoren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!