Jer*_*iah 1 c++ singleton segmentation-fault
我正在调试一些代码,这让我很健康.
这是一个单例类,它在getInstance方法中为此行提供了seg错误
cerr << _magazineList->_magazines.size() << endl;
Run Code Online (Sandbox Code Playgroud)
我在构造函数中做了同样的事情.
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
};
...
Run Code Online (Sandbox Code Playgroud)
.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();
};
Run Code Online (Sandbox Code Playgroud)
这一行:
_magazineList == new MagazineList;
Run Code Online (Sandbox Code Playgroud)
应该:
_magazineList = new MagazineList;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
177 次 |
| 最近记录: |