using--基础

using 关键字的作用

using声明---using declaration

就是声明一个已经存在的命名空间,命名空间成员,枚举,类成员对象等。

声明实现的原理

在 C++ 中,变量的声明并不等于变量的实现,变量声明只是告诉编译器该变量的名称、类型和作用域等信息。在程序编译的过程中,编译器只是为所声明的变量分配一些符号表中的空间,这个空间仅仅用于连接、重定位等编译过程中需要的信息。

在链接时,链接程序会根据符号表中保存的变量信息去查找具体的变量实现,如果找到了,将会把变量实现和符号表中的变量绑定在一起,最终生成可执行文件。如果链接程序没有找到变量的具体实现,将会出现链接错误。

本质上就是告诉编译器有这么一个东西存在。

using的几个作用

1,声明命名空间

声明一个命名空间之后就可以使用这个命名空间的所有成员。

2,声明命名空间中的成员

3,声明枚举

enum class test{
...
};
using enum test;

4,在派生类中声明基类成员

class A{
    public:
    struct m_a{};
};

class B:public A{
    public:
    using A::m_a;
};

5,别名

using的注意事项

1,using声明的类成员必须是一个类型,不能是一个变量对象;

#include <iostream>

class H{
    public:
    int h_a;
};

2,using在任意处声明类的成员类型时,必须指定别名。

原因:

如果如同以下:

class A{
    public:
    struct m_a{};
    enum class m_e{};
};
using A::m_a;
using A::m_e;
m_a a1;
m_e e1;

m_a和m_e的作用域是限定在类A中的,如果如同以上的写法,那么m_a和m_e就脱离类A独自成立了,这是不对的。

所以必须使用别名来表示声明m_a和m_e属于类A.

链接

相关推荐

  1. c#面试基础语法——ref、out、using关键字

    2024-02-19 00:24:03       58 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-19 00:24:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-19 00:24:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-02-19 00:24:03       87 阅读
  4. Python语言-面向对象

    2024-02-19 00:24:03       96 阅读

热门阅读

  1. C Primer Plus(第六版)16.17 复习题 第6题

    2024-02-19 00:24:03       50 阅读
  2. 110 C++ decltype含义,decltype 主要用途

    2024-02-19 00:24:03       41 阅读
  3. python - 文件

    2024-02-19 00:24:03       59 阅读
  4. C++练习

    C++练习

    2024-02-19 00:24:03      48 阅读
  5. 算法训练营day28(补), 贪心算法2

    2024-02-19 00:24:03       54 阅读
  6. Hive使用双重GroupBy解决数据倾斜问题

    2024-02-19 00:24:03       58 阅读
  7. Qt - 不同类之间槽函数和信号的连接

    2024-02-19 00:24:03       46 阅读
  8. 部分系统函数实现

    2024-02-19 00:24:03       44 阅读