我正在调试一些代码,这让我很适合。
这是一个单例类,它在getInstance方法
中给出了这行的seg错误cerr << _magazineList->_magazines.size() << endl;
我在构造函数中做了同样的事情。
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文件
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();
};
答案 0 :(得分:8)
这一行:
_magazineList == new MagazineList;
应该是:
_magazineList = new MagazineList;
答案 1 :(得分:1)
_magazineList == new MagazineList;
?