不幸的是,这不起作用并且在初始化字符串中
LogWay = QString("file.txt");
程序意外地完成了错误
下级因为收到操作系统的信号而停止了。 信号名称:SIGSEGV 信号含义:分段故障
在文件“qatomic_i386.h”
中我做错了什么?此代码示例使用int,bool或double变量,但不使用QString。为什么?我试着写没有QString构造函数,使用简单的等同
LogWay = "...";
但我有同样的错误。感谢您的帮助。
完整的课程代码:
这是.h文件 #include
const double _ACCURACY_ = 0.0001;
static const QString _LOG_WAY_ = "GrafPrinterLog.txt";
class GlobalSet
{
private:
static QSettings *_Settings;
GlobalSet(){}
GlobalSet(const GlobalSet&){}
GlobalSet &operator=(const GlobalSet&);
static GlobalSet *GS;
public:
static double IntToCut;
static double ReplaceSize;
static double Accuracy;
static int MaxPointCount;
static bool NeedProper;
static QString LogWay;
~GlobalSet();
static GlobalSet *Instance()
{
if (GS == NULL)
{
GS = new GlobalSet();
GS->firstSetUp();
}
return GS;
}
void firstSetUp()
{
Accuracy = _ACCURACY_;
LogWay = QString("file.txt");//fail is here!
NeedProper = false;
_Settings = new QSettings("options.ini",QSettings::IniFormat);
}
};
这是.cpp文件
#include "globalset.h"
GlobalSet *GlobalSet::GS = NULL;
QSettings *GlobalSet::_Settings = NULL;
double GlobalSet::Accuracy = _ACCURACY_;
QString GlobalSet::LogWay = _LOG_WAY_;