lundi 2 mars 2015

I have a class:



class C{
public:
//Omitted

private:
shared_ptr<X> anArray[2];
};


and X looks like:



class X{
public:
X(); //default constructor used by the above array declaration?
private:
std::unordered_map<int, double> a;
};


After I create my C class, I access one of the two shared_ptr objects in the array, however, the memory doesn't seem to be initialised. By this I mean X::a doesn't have any valid state.


I thought the array declaration in C would create the shared_ptr<X>s AND the X objects?


Is there something I should be explicitly doing in the X default constructor?


Aucun commentaire:

Enregistrer un commentaire