在写代码时遇到一个问题:
定义一个widget类,其中有9个成员变量和4个成员函数,成员函数需要使用这些成员变量;
1、当我在类中将成员函数和成员变量都置为public属性,在类的构造函数中初始化成员变量,在成员函数中直接使用成员变量,虽然程序运行起来没有问题,但是在我主动退出程序的时候,会报错:程序异常结束!
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
int chijingh;
int chijingm;
double chijings;
int chiweid;
int chiweim;
double chiweis;
double shicha;
double cjzx;
double cwzx;
creatdb mydatabase;
private slots:
void on_selectButton_clicked();
void on_insertButton_clicked();
void on_deleteButton_clicked();
void on_calcuteButton_clicked();
private:
Ui::Widget *ui;
};
2、当我在类定义时,把成员变量定义为静态成员变量,并且在调用成员函数之前,声明这些变量的作用域,然后再在成员函数中使用这些变量,代码运行到结束退出都没有问题!
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
static int chijingh;
static int chijingm;
static double chijings;
static int chiweid;
static int chiweim;
static double chiweis;
static double shicha;
static double cjzx;
static double cwzx;
creatdb mydatabase;
private slots:
void on_selectButton_clicked();
void on_insertButton_clicked();
void on_deleteButton_clicked();
void on_calcuteButton_clicked();
private:
Ui::Widget *ui;
};
//声明变量
int Widget::chijingh;
int Widget::chijingm;
double Widget::chijings;
int Widget::chiweid;
int Widget::chiweim;
double Widget::chiweis;
double Widget::shicha;
double Widget::cjzx;
double Widget::cwzx;
有谁知道是为什么吗???
而且我把成员变量和成员函数都改为私有属性 也不行,唉记录一下,有哪位知道原因的希望不吝赐教!!