Liny_@NotePad

沉迷ACG中

C++里的静态成员函数为何不能用const?

细看const成员函数的定义:不会修改该对象的数据成员。
我们知道,访问成员函数时会自动带上this,形如CTest::SetColor(int color),会自动转换成CTest::SetColor(CTest* this, int color)。
在const成员函数时,实际转换成了CTest::SetColor(const CTest* this, int color)。
this指向的是一个const对象,const对象的数据成员是不能改变的。
而静态成员函数实际上是一个全局函数,没有this指针,根本不会访问到对象的数据成员,在此使用const就多此一举了。

static属性报NullPointException?!

在写一个TabPanel时用饿汉式单例写,
继承了封装过的JPanel,重写父类的方法fillData可以通过service获得数据,显示到界面上,

有好几个TabPanel是正常的,但是有两个会报NullPointException,真抽象……

于是百度关键词"static 变量 null",看到的第一条:

Re: 求助关于static变量初始化的一个问题! - CSDN游戏开发站
1.全局变量(包括全局中的static变量)都是在其所在模块被加载时,被初始化的。 2.通常全局变量的初始化顺序是不可假定的,但同一个文件中的两个全局变量,谁放在前面,谁好象就应先被初始化。 3.模板中的static变量与全局变量谁先被初始...
bbs.gamedev.csdn.net/Web/53824/ShowPost.aspx 74K 2009-7-29 - 百度快照

顿悟……

话说我用了个static TabPanel panel = new ThisTabPanel();来存放单例的实例,
在其他TabPanel里我的service都放在panel前面,但是惟独这两个放到后面去了。。

调一下位置,正常了,好囧。。细节部分真的要注意啊 = =