Buonasera.
Ho un array bidimensionale classico di oggetti "Casella". Ogni oggetto contiene una sua lista dinamica di Oggetti "Animale".
Quando aggiungo un "Animale" con .push_back() la lista rimane vuota.
Ho prodotto un codice di esempio:
////////////////////////////FILE.h
#include <array>
#include <vector>
class Animale
{
	int varS;
public:
	Animale(int s);
	~Animale();
};
class Casella{
	std::vector<Animale> AnimaliVivi;
public:
	int QuantiAnim();
	void AddAnimale(Animale a);
	Casella();
	~Casella();
};
	
class Mondo
	{
		
		static std::array<std::array<Casella, 60>, 60> Mondo::MaMa;
	public:
		Mondo();
		static Casella Mondo::GetCasella(int x, int y);
		~Mondo();
	};
	
////////////////////////////FILE.cpp
#include "Cond.h"
Animale::Animale(int s)
{
	varS = s;
}
Animale::~Animale()
{
}
Casella::Casella()
{
}
Casella::~Casella()
{
}
Mondo::Mondo()
{
}
Mondo::~Mondo()
{
}
std::array<std::array<Casella, 60>, 60> Mondo::MaMa;
Casella Mondo::GetCasella(int x, int y) { return MaMa[x][y]; }
void Casella::AddAnimale(Animale a) { AnimaliVivi.push_back(a); }
int Casella::QuantiAnim() { return AnimaliVivi.size(); }
////////////////////////////MAIN.cpp 
private: System::Void load(System::Object^  sender, System::EventArgs^  e) {
		Animale cavia(3);
		Casella();
		Mondo();
		Mondo::GetCasella(0, 0).AddAnimale(cavia);
		Mondo::GetCasella(0, 0).AddAnimale(cavia);
		label1->Text = Convert::ToString(Mondo::GetCasella(0, 0).QuantiAnim());
		}
Dove sbaglio? 
Sarà che quando alloca la memoria per le "Casella" non ne riserva per la lista di "Animali" essendo in quel momento vuota?
Grazie!