Heim > Backend-Entwicklung > C++ > Wie definiere ich Static Const Integer-Klassenmitglieder in C richtig?

Wie definiere ich Static Const Integer-Klassenmitglieder in C richtig?

Barbara Streisand
Freigeben: 2024-12-01 08:29:11
Original
593 Leute haben es durchsucht

How Do I Properly Define Static Const Integer Class Members in C  ?

Definieren statischer Const-Ganzzahlmitglieder in Klassendefinitionen: Eine Untersuchung

C ermöglicht die Deklaration statischer Const-Ganzzahlmitglieder innerhalb von Klassendefinitionen. In diesem Zusammenhang ist es jedoch wichtig, den Unterschied zwischen Initialisierung und Definition zu verstehen.

Im bereitgestellten Beispielcode:

class test
{
public:
    static const int N = 10;
};
Nach dem Login kopieren

Die Deklaration von N innerhalb der Klasse initialisiert sie mit einem Wert von 10. Dies ist jedoch nicht gleichbedeutend mit einer Definition. Um den aufgetretenen Linker-Fehler zu beheben, ist eine separate Definition von N außerhalb der Klassendefinition erforderlich. Dies kann durch eine Namespace-Bereichsdefinition erreicht werden, wie zum Beispiel:

const int test::N = 10;
Nach dem Login kopieren

Alternativ kann das Schlüsselwort constexpr verwendet werden, um statische const-Integer-Mitglieder in einem einzigen Schritt zu deklarieren und zu definieren, sodass kein separater Schritt erforderlich ist Definition:

class test
{
public:
    static constexpr int N = 10;
};
Nach dem Login kopieren

Wenn std::min aufgerufen wird, werden Parameter erwartet, die als Referenz übergeben werden. Da N als statische konstante Ganzzahl deklariert ist, muss es definiert werden, um die Referenzanforderung zu erfüllen. Durch das Auskommentieren des Aufrufs von std::min kann der Code kompiliert werden, da die Definition von N nicht mehr erforderlich ist, obwohl immer noch darauf verwiesen wird.

Zusammenfassend lässt sich sagen, dass C die Initialisierung statischer const-Integer-Mitglieder innerhalb ermöglicht Bei Klassendefinitionen ist eine separate Definition für die Referenzierung des Werts erforderlich. Dies kann durch eine Namespace-Bereichsdefinition oder durch die Verwendung des Schlüsselworts constexpr erreicht werden.

Das obige ist der detaillierte Inhalt vonWie definiere ich Static Const Integer-Klassenmitglieder in C richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage