Qt知识点梳理 —— NameSpace命名空间
文章目录
命名空间作用
标准命名空间
使用命名空间
Qt自定义命名空间
项目源码
开发环境
命名空间作用
命名空间是ANSIC++引入的可以由用户命名的作用域,用来处理程序中常见的同名冲突;
如解决问题:【异常】间接寻址级别不同
C++中,命名空间使用namespace来声明,并使用{ }来界定命名空间的作用域,例如:
namespace func{
int age=18;
}
标准命名空间
C++中标准命名空间std,std 是 standard 的缩写,意思是“标准命名空间”;C++标准库中的函数或者对象都是在命名空间std中定义的;
Qt中有自带namespace:新建一个带窗体的项目都可以看到;
namespace Ui { class MainWindow; }
使用命名空间
1、在程序头部引用命名空间,如:
using namespace std;
2、在引用变量或方法时加上命名空间,如:
SpaceA::ToolA::Func1();
Qt自定义命名空间
1、使用namespace 及{ }来界定命名空间的作用域;
2、编写变量方法;
3、引用时使用 using namespace xxx 引用此命名空间;
示例如下:
ToolA.h
#ifndef TOOLA_H
#define TOOLA_H
#include <QObject>
namespace SpaceA {
class ToolA : public QObject
{
Q_OBJECT
public:
explicit ToolA(QObject *parent = nullptr);
static void Func1();
static void Func2();
static void Func3();
static void Func4();
};//class
}//namespace
#endif // TOOLA_H
ToolA.cpp
#include "toola.h"
#include <QDebug>
namespace SpaceA {
ToolA::ToolA(QObject *parent) : QObject(parent)
{
}//class
void ToolA::Func1()
{
qDebug() << "ToolA Func1";
}
void ToolA::Func2()
{
qDebug() << "ToolA Func2";
}
void ToolA::Func3()
{
qDebug() << "ToolA Func3";
}
void ToolA::Func4()
{
qDebug() << "ToolA Func4";
}
}//namespace
MainWindow.cpp中引用
#include "mainwindow.h"
#include "ui_mainwindow.h"
//using namespace SpaceA; //此处引用namespace后 无需在每次调用前加SpaceA
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
SpaceA::ToolA::Func1();//头部引用namespace后 无需在每次调用前加SpaceA
SpaceA::ToolA::Func2();
SpaceA::ToolA::Func3();
SpaceA::ToolA::Func4();
ToolB::Func1();
ToolB::Func2();
ToolB::Func3();
ToolB::Func4();
}
MainWindow::~MainWindow()
{
delete ui;
}
项目源码
项目Git地址:lizhifun/QtNamespaceDemo
开发环境
Author:Lizhifun
OS:Windows 10 家庭中文版
Compiler:Microsoft Visual C++ Compiler 15.9.28307.1259(amd64)
Kit:Desktop Qt 5.14.2 MSVC2017 64bit
Qt Creator:4.11.1
————————————————
版权声明:本文为CSDN博主「一朵小冯花」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/tingzhiyi/article/details/112584777