Het volgende probleem dient zich aan bij mij.
In onderstaande code probeer ik een Singleton class te bouwen:
BOND.h
BOND.cc (deels)
Nou roep ik een andere class (waar BOND.h ge-include wordt) aan:
return BOND::instance()->eenMethode();
De error die ik dan krijg bij compilen:
Test.cc: In member function `bool Test::test1()':
Test.cc:28: error: cannot call member function `BOND* BOND::instance()'
without object
make: *** [Dierentuin.o] Error 1
Volgens mij heb ik me netje gehouden aan de regels om een Singleton te implementeren, dus snapnie waarom het niet door de compiler komt.
In onderstaande code probeer ik een Singleton class te bouwen:
BOND.h
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| class BOND { private: vector<int>* kaarten; static BOND* deBond; protected: BOND(); BOND(const BOND&); BOND& operator=(const BOND&); public: ~BOND(); BOND* instance(); bool controleerKaart(int nummer); }; |
BOND.cc (deels)
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| #include "BOND.h" BOND * BOND::deBond = 0; BOND::BOND(){ this->kaarten = new vector<int>; //uitTeDelenKaarten vullen met nummers for(int i=1; i<1001; i++){ this->kaarten->push_back(i); } } BOND* BOND::instance(){ if(deBond == 0){ deBond = new BOND(); } return deBond; } |
Nou roep ik een andere class (waar BOND.h ge-include wordt) aan:
return BOND::instance()->eenMethode();
De error die ik dan krijg bij compilen:
Test.cc: In member function `bool Test::test1()':
Test.cc:28: error: cannot call member function `BOND* BOND::instance()'
without object
make: *** [Dierentuin.o] Error 1
Volgens mij heb ik me netje gehouden aan de regels om een Singleton te implementeren, dus snapnie waarom het niet door de compiler komt.