欢迎光临~湖南智能应用科技有限公司-hniat.com
语言选择: 中文版 ∷  英文版

基础知识

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

联系我们

联系人:徐经理

手机:13907330718

电话:0731-22222718

邮箱:hniatcom@163.com

地址: 湖南省株洲市石峰区联诚路79号轨道智谷2号倒班房6楼603室

关闭
用手机扫描二维码关闭
二维码