Qt静态变量的问题
为什么在头文件中声明的静态变量,在成员函数中不能使用
如下代码
class Button : public QGraphicsWidget
{
public:
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *);
private:
QStringList word_list;
static int count;
};
void Button::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *)
{
count++;
}
错误信息是:undefinited reference to ‘Button::gft’
若是把 static int gft; 移到函数中定义就没问题,但是我需要在其他类函数中改变gft,所以在函数中定义的方法行不通。
求为什么以上代码不能实现。
注:我看到清华大学出版社C++那本书98页的程序,静态成员变量就是在头文件中定义的,而且成员函数还能调用
[解决办法]
暑假没码代码,犯糊涂了。
应该是加上:
int Button::count =0;
[解决办法]
count 初始化了吗?
[解决办法]
静态变量需要初始化