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
Barbara StreisandOriginal
2024-12-01 08:29:11647Durchsuche

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;
};

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;

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;
};

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!

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