20071120

C++: Defining/initializing static member(s) within a class.

// file: obj.h
class obj {
public:
obj(void) { }; // ctor
~obj(void) { }; // dtor
private:
static int nr;
static bool initialized;
}

// file: obj.cpp
#include "obj.h"

// Waring: Static members need external definition!
int obj::nr;
// default value of static member:
bool obj::initialized=false;
Στον παραπάνω κώδικα βλέπουμε ένα παράδειγμα χρήσης στατικών μεταβλητών σε C++ class. Οι μεταβλητές nr, και initialized είναι ίδιες σε όλες τα στιγμιότυπα (instances) αντικειμένων από το class obj. Μάλιστα η μεταβλητή έχει αρχική μεταβλητή false, η οποία δεν ορίζεται μέσα στον ctor αλλά εξωτερικά.

Δεν υπάρχουν σχόλια:

eggs.in.art (my non-technical blog)