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?"
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!
Wenn Sie wissen wollen, was so alles auf Ihrem PC passiert!
Tischrechner als Software.
Jetzt herunterladen und kostenlos testen!
Tastenkombinationen können PC-Arbeit erheblich beschleunigen.
Eine Reihe von kostenlosen Online-Berechnungen zur Erleichterung der täglichen Arbeit.
Sicherheit im PC-Bereich
Es existiert eine kostenlose, einfache und äußert effektive Methode, fast alle Viren, Trojaner, Würmer ...