博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Qt 编程中 namespace Ui { class Widget; } 解析
阅读量:4312 次
发布时间:2019-06-06

本文共 851 字,大约阅读时间需要 2 分钟。

class Widget 里面有个声明 Ui::Widget *ui,这个 ui 是使用 namespace Ui 里的 Widget 类声明的,该类只是简单的继承了 ui_widget.h 里的 Ui_Widget 类(没有添加任何成员)。现在就很清楚了,这两个看起来名字一样的 Widget 其实是两个类,一个是 namespace Ui 里的,另一个是 namespace Ui 之外的 Widget 类,namespace 声明的类其实就是个空壳,它的基类功能是将此窗口上的所有控件的声明、实例化、初始化。声明的原因就是为了使 ui 布局控制和其他的控制代码分离。

用一段 C++ 代码来说明这一切:

test.h 文件内容:

#ifndef _TEST_H_#define _TEST_H_#include 
class Test{public: void display(){ std::cout << "This is a test!(no namespace)" << std::endl; }};class Base{public: void display(){ std::cout << "This is a test!(namespace)" << std::endl; }};/* 使用 namespace 声明 */namespace UI { class Test: public Base {};}#endif

main.cpp 文件内容:

#include "test.h"int main(){    Test t;    UI::Test tt;        t.display();    tt.display();        return 0;}

运行结果:

1319058-20180516000107909-1890597715.png

转载于:https://www.cnblogs.com/GyForever1004/p/9043839.html

你可能感兴趣的文章
潜移默化学会WPF(技巧篇)--TextBox相关(一) - AYUI框架 - 博客园
查看>>
Quartz.Net进阶之七:QuartzNet其他的功能简述
查看>>
消息队列
查看>>
WPF进阶教程 - 使用Decorator自定义带三角形的边框
查看>>
SQLServer之FOREIGN KEY约束
查看>>
redis 系列2 知识点概述
查看>>
图像滤镜艺术---图像滤镜晕影调节算法研究
查看>>
Win8Metro(C#)数字图像处理--2.21二值图像腐蚀
查看>>
MVC5 + EF6 入门完整教程
查看>>
SQL Server如何在变长列上存储索引
查看>>
Replication的犄角旮旯(八)-- 订阅与发布异构的问题
查看>>
Sliverlight实例之 绘制扇形和环形图
查看>>
Visual Studio 2012使用水晶报表Crystal Report
查看>>
你不知道的 页面编码,浏览器选择编码,get,post各种乱码由来
查看>>
SQLSERVER PRINT语句的换行
查看>>
Windows 8.1 应用开发 – 触控操作
查看>>
PowerDesigner创建物理模型
查看>>
使用Git、Git GUI和TortoiseGit
查看>>
vue---canvas实现二维码和图片合成的海报
查看>>
检查项目里是否有IDFA的方法
查看>>