c++ - 有人可以解释 "using"的含义吗?

标签 c++ using

我不明白下面在 C++ 中 using 的用法。 与 typedef 有什么区别? 有人可以用一些例子来解释吗?

template<typename DataType>
class DataWriter
{
using ObjType = std::function<void(DataType)>
// ...
}

最佳答案

在您的示例中typedef 没有区别。

它们是相同的:

typedef int a;
using a = int;

总的来说,它更通用,这就是引入它的原因:

  • 可以模板化。

    template<class X> using smart = std::unique_ptr<X>;
    
  • 可用于将符号导入当前作用域。

    struct Derived : Base {
        using Base::Fun;
    };
    

关于c++ - 有人可以解释 "using"的含义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28246988/

相关文章:

c++ - 为什么int指针 '++'增加4而不是1?

c++ - 在没有动态分配的情况下在构造对象时避免数据的多个拷贝

c++ - 将结构推回结构中的 vector

c++ - 为什么引用不能与编译时函数一起使用?

c# - Using with inner using 的正确使用方法

c# - 使用 "using block"时感到困惑 - C#

c++ - 在 Unix/Linux (Ubuntu) 中编译头文件和两个 .cpp 文件

c# - 什么时候应该在 C# 中使用 "using" block ?

c# - 从 'using' 语句中的函数返回资源实例是否与直接在 'using' 语句中实例化资源相同?

c# - Visual Studio 可以理解,但 Unity 不能?