Heim >Backend-Entwicklung >C++ >Wie werden Const-Datenelemente in C ordnungsgemäß initialisiert?

Wie werden Const-Datenelemente in C ordnungsgemäß initialisiert?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-05 00:42:11424Durchsuche

How to Properly Initialize Const Data Members in C  ?

Konstante Datenelementinitialisierung in C

In C treten beim Versuch, ein konstantes Datenelement innerhalb einer Klassendeklaration zu initialisieren, Fehler auf wie „ „ISO C verbietet die Initialisierung von Mitgliedern“ und es kann dazu kommen, dass „t“ statisch wird. Um dieses Problem zu lösen, ist es wichtig, die Natur der const-Datenelemente zu verstehen.

Const-Variablen geben einen Wert an, der während der Programmausführung nicht geändert werden kann. C verlangt jedoch, dass Objektdefinitionen eindeutige Deklarationen haben. Um diese Regel einzuhalten, können const-Variablen nicht innerhalb von Klassendeklarationen definiert werden.

Die Lösung besteht darin, die const-Variable außerhalb der Klassendeklaration mithilfe der Initialisierungsliste zu definieren. Die Syntax zum Initialisieren eines const-Datenelements lautet:

className() : memberName(value) {}

In Ihrem Beispiel:

#include <iostream>

using namespace std;

class T1
{
  const int t;

public:
  T1() : t(100) {}
};

int main()
{
  T1 obj;
  cout << "T1 constructor: " << obj.t << endl;
  return 0;
}

Dieser Code initialisiert das const-Datenelement t während der Objektkonstruktion mit dem Wert 100 und vermeidet so das oben genannten Fehler.

Das obige ist der detaillierte Inhalt vonWie werden Const-Datenelemente in C ordnungsgemäß 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