Kontakt  Anfahrtplan   Datenschutzerklärung  Impressum Englisch 

Service: C/C++ Tipps:

Statische konstante Arrays auf Klassenebene definieren und deklarieren


Eigentlich ist das eine Standardaufgabe. Wenn man sie jedoch nur selten verwendet, fragt man sich jedesmal wieder neu: "Wie funktioniert das doch gleich noch 'mal?"

Zunächst noch einmal die Aufgabenstellung im Detail:

Ich benötige ein Array von statischen Konstanten innerhalb einer Klasse, die über eine statische Member-Funktion verfügbar sein soll. Z.B. eine Liste von numerischen Konstanten. Also deklariere ich in der Header-Datei wie folgt:

class Foo
{
public:
    Foo();
    static const long Item(const long& Index);

private:
    static const long m_lSomeNumbers[5];
};

Wie und wo wird nun m_lFiveConstNumber definiert? Die Antwort: In der Implementierungsdatei noch vor der eigentlichen Implementierung der Klasse. Also wie folgt:

// Definition der statischen Konstanten
const long Foo::m_lSomeNumbers[] =
{
    10,
    20,
    30,
    40,
    50
};

// Definition der sonstigen Klassenelemente
Foo::Foo()
{
// ...
}

const long Foo::Item(const long& Index)
{
// Achtung: Im wirklichen Leben muß 'Index' auf den zulässigen Bereich geprüft werden!
    return m_lSomeNumbers[Index];
}

Nun kann die Klasse Foo wie folgt verwendet werden:

    ATLTRACE(_T("Foo::Item(1): %d\n"), Foo::Item(1));

// Ausgabe:
    Foo::Item(1): 20

Anmerkung: Bitte beachten, dass hier keine Deklaration für 'Foo' erfolgen muss. Es wird ja schließlich eine statische Klassenfunktion aufgerufen!

Seitenanfang


Wider dem Blindflug!

Wenn Sie wissen wollen, was so alles auf Ihrem PC passiert!

Lesen Sie dies ...


Einfach - Schnell - Günstig!

Tischrechner als Software.

Jetzt herunterladen und kostenlos testen!

Mehr lesen ...


Effektiver Arbeiten!

Tastenkombinationen können PC-Arbeit erheblich beschleunigen.

Mehr lesen ...


Kleine Helfer für Sie:

Eine Reihe von kostenlosen Online-Berechnungen zur Erleichterung der täglichen Arbeit.

Ausprobieren ...


Wissenswertes!

Sicherheit im PC-Bereich

Es existiert eine kostenlose, einfache und äußert effektive Methode, fast alle Viren, Trojaner, Würmer ...

Mehr lesen ...