Heim >Backend-Entwicklung >C++ >Wie werden konstante Datenelemente in C richtig initialisiert?

Wie werden konstante Datenelemente in C richtig initialisiert?

Susan Sarandon
Susan SarandonOriginal
2024-12-09 00:58:11825Durchsuche

How to Properly Initialize Constant Data Members in C  ?

Konstante Datenelemente initialisieren

In der C-Programmierung werden konstante Datenelemente verwendet, um Werte zu definieren, die nach der Initialisierung nicht geändert werden können. Beim Versuch, ein const-Datenelement innerhalb der Klassendefinition zu initialisieren, können aufgrund der Einschränkungen von C Fehler auftreten.

Fehlererklärung

Der Compilerfehler wird dadurch verursacht, dass C verbietet die Initialisierung von const-Datenelementen innerhalb der Klassendefinition. Dadurch sollen mehrere Definitionen desselben Datenelements in verschiedenen Übersetzungseinheiten verhindert werden.

Lösung: Initialisierung außerhalb der Klasse

Um ein const-Datenelement zu initialisieren, muss dies der Fall sein außerhalb der Klassendefinition definiert. Dies kann mithilfe der Initialisierungsliste im Konstruktor erreicht werden, wie unten gezeigt:

#include <iostream>

using namespace std;

class T1 {
  const int t;  // Declaration of const data member

public:

  T1() : t(100)  // Initialization in initializer list
  {
    cout << "T1 constructor: " << t << endl;
  }
};

Initialisierungsliste

Die Initialisierungsliste im Konstruktor initialisiert das const-Datenelement vor der Klasseninitialisierung. Dadurch kann der Wert zugewiesen werden, bevor das Klassenobjekt erstellt wird.

Weitere Überlegungen

Es ist wichtig zu beachten, dass die Initialisierung eines const-Datenelements mithilfe der Initialisierungsliste erfolgen muss Dies kann innerhalb des Konstruktors erfolgen und kann später im Programm nicht geändert werden.

Das obige ist der detaillierte Inhalt vonWie werden konstante Datenelemente in C richtig initialisiert?. 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