Konstante member eine klasse
-
class foo{ const vector<int> m_Dat; foo(int i=0) : m_Dat(i){ m_Dat.pushback(....); m_Dat.pushback(....); m_Dat.pushback(....); } };das problem ist nun, das m_Dat nach dem konstruktor schon konstant bleiben soll, aber im Konstruktor will ich noch default Werte hinzufügen.. geht das irgendwie, oder muss ich "const " weg lassen.
-
du könntest eine funktion schreiben, die einen vector zurückgibt und damit deinen konstanten vector initialisieren:
class Foo { const vector<int> dat; static vector<int> init_dat () { vector<int> tmp; tmp.push_back(42); return tmp; } public: Foo () : dat(init_dat()) { } };andererseits könntest du dir auch bestimmte werte für den vector generieren lassen, à la boost::counting_iterator:
class Foo { const vector<int> v; public: Foo () : v(boost::counting_iterator<int>(0), boost::counting_iteraotr<int>(5)) { } };