Я отлаживаю некоторый код, и это приводит меня в негодность.
Это одноэлементный класс, который дает мне ошибку сегмента в этой строке в методе getInstance
cerr << _magazineList->_magazines.size() << endl;
Iделаю то же самое в конструкторе.
MagazineList* MagazineList::_magazineList = NULL;
MagazineList::MagazineList()
{
//Initialize the vector of magazines
_magazines.push_back(Magazine("1", "Design Times", 20.0));
_magazines.push_back(Magazine("2", "UML News", 50.0));
cerr << this->_magazines.size() << endl;
};
MagazineList* MagazineList::getInstance()
{
if ( _magazineList == NULL ) {
_magazineList == new MagazineList;
cerr << "getInstance constructing" << endl;
cerr << _magazineList->_magazines.size() << endl;
}
cerr << "getInstance returning" << endl;
return _magazineList;
};
MagazineList::~MagazineList()
{
//Delete magazines in magazines vector
};
...
.h file
using std::vector;
class MagazineList
{
private:
int _numberOfMagazines;
vector<Magazine> _magazines;
static MagazineList* _magazineList;
MagazineList();
public:
static MagazineList* getInstance();
~MagazineList();
int getNumberOfMagazines();
void setNumberOfMagazines(int number);
Magazine* getMagazine(string magId);
void newMagazine();
void removeMagazine();
};