Heim >Backend-Entwicklung >C++ >Verfügen integrierte Typen in C über Konstruktoren?

Verfügen integrierte Typen in C über Konstruktoren?

Susan Sarandon
Susan SarandonOriginal
2024-12-08 06:57:10239Durchsuche

Do Built-In Types in C   Have Constructors?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn