找回密码
 立即注册
收起左侧

关于全局变量的疑惑

4
回复
8861
查看
[复制链接]
累计签到:1 天
连续签到:1 天
来源: 2013-7-27 23:25:06 显示全部楼层 |阅读模式
1Qter豆
最近用QT处理数据时,用到全局变量,如下:
#include "dialog.h"
#include "ui_dialog.h"
int a;
Dialog::Dialog(QWidget *parent) :    QDialog(parent),    ui(new Ui::Dialog)
{
    ui->setupUi(this);   
data2();
}


void
Dialog::data1()
{    a = 1+2;}

void
Dialog::data2()
{   
QLabel
*label1 = new QLabel(this);   
label1->resize(642,30);   
label1->move(3,3);   
label1->setText(QString::number(a,10));   
label1->show();

}

Dialog
::~Dialog()
{    delete ui;}

这个时候label2  为什么不显示 a =1+2 的值呢??
  全局变量不是这么用的吗?

最佳答案

查看完整内容

这个问题就是 类的成员函数能不能直接调用 全局变量的问题! 要知道类的成员函数是要加this指针的
回复

使用道具 举报

累计签到:11 天
连续签到:1 天
2013-7-27 23:25:07 显示全部楼层
这个问题就是  类的成员函数能不能直接调用 全局变量的问题! 要知道类的成员函数是要加this指针的
回复

使用道具 举报

累计签到:1 天
连续签到:1 天
2013-7-27 23:25:48 显示全部楼层
#include "dialog.h"
#include "ui_dialog.h"

int a;
Dialog::Dialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog)
{
    ui->setupUi(this);
    data2();
}

void Dialog::data1()
{
    a = 1+2;
}
void Dialog::data2()
{
   QLabel *label1 = new QLabel(this);
   label1->resize(642,30);
   label1->move(3,3);
   label1->setText(QString::number(a,10));
   label1->show();
}
Dialog::~Dialog()
{
    delete ui;
}
回复

使用道具 举报

尚未签到

2013-7-29 09:14:53 显示全部楼层
where is your label2 ???
晚上睡觉太晚容易犯2。建议以后早点睡觉
回复

使用道具 举报

累计签到:30 天
连续签到:1 天
2013-7-29 09:33:38 显示全部楼层
没有显示是有点奇怪,我测试了一下是可以的。你的data1()都没有调用到。但在这种情况下编译器默认a为0.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了