Otoz chcialbym miec klase, ktora ma vector wszystkich obiektow innej klasy i zeby dodawanie odbywalo sie od razu w konstruktorze bez zbednych wywolan innch metod.
#include <iostream>
#include <vector>
class Foo;
class vector
{
public:
std::vector<Foo*>objects;
static vector* Instance()
{
static vector *foo;
return foo;
}
static void addToVector(Foo *ptr)
{
vector::Instance()->objects.push_back(ptr);
}
static std::vector<Foo*> getVector()
{
return vector::Instance()->objects;
}
};
class Foo
{
public:
int a, b;
Foo(Foo *objectPtr) : a(10), b(20)
{
vector::addToVector(objectPtr);
}
};
int main()
{
Foo *foo = new Foo(foo);
std::cout<<vector::getVector()[0]->a;
return 0;
}
Kod sie kompiluje ale nie widac nic na ekranie, tak jakby a bylo rowne null.
Tak przy okazji, czy tylko ja mam problemy ze utworzeniem zmiennej statycznej ? Od razu wywala errora "nierozpoznany symbol zewnetrzny", a w CB dziala ;/