学习单例模式的体验,低级错误耗了俩小时

原创 2012年03月29日 17:36:49


今天学习用单例模式,但是写好后编译过去,运行始终有报错。

Linking...
1>LINK : E:\workspace\waveform\Debug\waveform.exe not found or not built by the last incremental link; performing full link
1>linearscale.obj : error LNK2001: unresolved external symbol "private: static class LinearScale * LinearScale::_pInstance" (?_pInstance@LinearScale@@0PAV1@A)
1>E:\workspace\waveform\Debug\waveform.exe : fatal error LNK1120: 1 unresolved externals
1>Build log was saved at "file://e:\workspace\ag2eval\sw\primace\waveform\waveform\Debug\BuildLog.htm"
1>waveform - 2 error(s), 0 warning(s)


 

初时怀疑是vc下qt的工程组织问题,利用修改vproj工程文件排除这个原因后。

发现是低级的静态成员初始化问题

LinearScale::LinearScale(UNIT a, const int& timescale, const long& count)
{
	_baseUnit = a;
	_timescale = timescale;
	_totallength = count;
	_pInstance = NULL;   //error is here _pInstance is static type. !! 

	qreal xx, yy;
	for (int i=0; i< _totallength; ++i)
	{
		xx = 11 + i*21;
		yy = 0;
		
		QGraphicsItem *item = new Grid(Qt::red, xx, yy);
		item->setPos(QPointF(i,1));
		item->setParentItem(this);
	}
	//_pItem = new QGraphicsItem();
	
}

pInstance 静态成员的初始化改在构造函数之外,问题解决。

LinearScale* LinearScale::_pInstance = NULL; 

 

重新温习一遍吧,还有就是类的static方法里不能用非static成员变量。这也是常识了,我又犯低级错误,最近手太生了可能。

开发人员经常犯一些低级错误如何解决

这种现象在开发流程不规范的团队里特别常见,尤其是一些“作坊式”的团队里。解决这种问题一般从两个方面入手: 1.开发管理入手 从根源来解决问题。可以制定规范的开发流程,甚至可以制定惩罚制度,还有...
  • lluozh2015
  • lluozh2015
  • 2015年10月12日 19:51
  • 958

新java十大低级错误

 1       前言为了规范大家的编程行为,借鉴前人的编程经验,避免低级错误的不断发生,特发布MDSP产品Java十大低级错误,供所有Java开发人员学习。2       Java十大低级错误1、 ...
  • tianhangsky
  • tianhangsky
  • 2011年04月13日 12:40
  • 1365

用两个小例子来解释单例模式中的“双重锁定”

话说几十年前看上一位漂亮的女子,为了表达爱慕,为她买了一枚Darry Ring,女子被感动,顺利追到手,当时还纳闷为什么买钻戒还要填写身份证号,不过也没在意。前几天又看上一女子,于是花心的我想脚踏两条...
  • huyuyang6688
  • huyuyang6688
  • 2014年05月21日 10:10
  • 2116

如何防止低级问题导致的质量事故

如何防止低级问题导致的质量事故 2017-02-04 杨晓慧 测试人杨晓慧 这里说的低级问题是指:不需要特殊条件,就是在用户进行正常业务的基本操作时,由于缺陷导致业务操作无法完成。 例如:正常安...
  • zouhui1003it
  • zouhui1003it
  • 2017年02月23日 20:06
  • 320

JAVA编程中常见的一些低级错误

     JAVA与C++的一个很大区别就是JAVA不需要程序员去分配,释放内存。这在很大程度上减少了程序员的工作量,但或许正因为这个原因我们经常看到一些编程错误。     例1:         从...
  • hantiannan
  • hantiannan
  • 2009年11月27日 21:41
  • 1446

Java十大低级错误

1、方法和变量命名随意而不规范,没有类注释、方法注释或注释不规范,代码修改后,不同步修改注释,导致注释与代码不符。  2、数据类不重载toString()方法(说明:编程规范要求“所有的数据类必须重...
  • u011970711
  • u011970711
  • 2015年11月03日 11:44
  • 445

刷leetcode的第一道题——Reverse Words in a String

好久没在Online Judge上做题了,今天
  • Acceptedxukai
  • Acceptedxukai
  • 2014年08月29日 18:43
  • 2219

太搞笑了,犯了个低级错误。。。以及由此想开去的

    今天在调一段C#的代码,调了好久,可怎么都不对,可是看看代码嘛都是对的啊,很眼熟的语法,怎么看都对啊,而且还是从另外一个项目中复制过来的,在那个项目中用的好好的怎么到这个项目中就不行了呢,难道...
  • ytlook
  • ytlook
  • 2008年03月21日 01:33
  • 328

初学者,开发中的低级错误

我是一个刚刚工作的java程序员,在开发中,经常犯错误,所犯的错误都看似是低级错误。  如:一次开发,主管给我安排了一个小任务。我开始作。 进公司的时候,有一个月的培训:包括注释的规范,命名的规范,缩...
  • u010902814
  • u010902814
  • 2013年10月21日 22:52
  • 954

针对搜索的一个常见错误

说来惭愧,ACM一直都单挑能力不行,发现自己的代码能力很差,经常自己写代码不走心,所以容易出现很多的低级错误。这里作为这个栏目的第一篇,我觉得有必要记录自己的常见错误的地方,以后注意力放上面就不容易出...
  • lovewangtaotao
  • lovewangtaotao
  • 2017年01月23日 15:38
  • 88
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:学习单例模式的体验,低级错误耗了俩小时
举报原因:
原因补充:

(最多只允许输入30个字)