能否具体解析一下这段C++程序?谢谢!

#include<QDialog>namespaceUi{classDialog;}classDialog:publicQDialog{Q_OBJECT//这句的作用是什... #include <QDialog>

namespace Ui {
class Dialog;
}

class Dialog : public QDialog
{
Q_OBJECT //这句的作用是什么?

public:
explicit Dialog(QWidget *parent = 0); //这句的作用是什么?*parent在哪里定义了?
~Dialog(); //这句的作用是什么?

private:
Ui::Dialog *ui; //这句的作用是什么?一个程序后面跟着一个指针?
};
展开
 我来答
hatianxiao
2016-12-26
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
Q_OBJECT //这句的作用是什么?百度后一堆答案,我的理解是这个类中的信号槽机制起作用,好像印象中这个类必须继承至QObject才能添加这一句 ,QT的特色之一就是信号槽机制,该机制的实现需要使用moc程序进行编译时扩展。

explicit Dialog(QWidget *parent = 0); //这句的作用是什么?*parent在哪里定义了?

要求显示调用这个构造函数,不支持可能的隐式转换,*parent就在这里定义啊,只不过这里直接设定默认值是0,类型是QWidget ,意思是你可以不提供参数,建议百度看看C++候选函数是怎么匹配的和参数默认值是怎么回事。

~Dialog(); //这句的作用是什么?析构函数的声明。

Ui::Dialog *ui; //这句的作用是什么?一个程序后面跟着一个指针?QT的特长是界面绘制,这个UI对应着它的页面类,可以理解成那种拖控件就可以直接完成页面设计的类,如果写过VB或者安卓,你就明白他们都支持代码设计UI和直接拖拉控件设计UI,这里的ui指向的就是页面类,我习惯纯代码控制,所以可以删除这个指针,如果你的页面是基于直观拖拉方式进行设计的,那么就需要这个。建议把QT教程看完吧,个人认为你的C++基本功也不太好啊,先完整学习一遍C++和QT吧,不用急于编程。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
?>

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式