1.别名用法,跟typedef一样,更清楚
2.当前域中引入命名空间
3.子类引用基类成员
除了以上几个用法,C++11引入的 using 还有一项新的特性,即模板的 using 声明:using 模板别名。
使用 using 模板别名可以为模板类型参数创建别名,使得模板类型参数可以更容易地被引用,增加代码的可读性。
示例:
#include <iostream>
#include <vector>
template<typename T> using vector_ptr = std::vector<T*>; // 定义一个 vector 指针类型的别名
int main()
{
vector_ptr<int> ptrs;
ptrs.push_back(new int(1));
ptrs.push_back(new int(2));
ptrs.push_back(new int(3));
for (const auto& v : ptrs)
std::cout << *v << ' ';
std::cout << std::endl;
return 0;
}
在这个示例中,使用 template[HTML_REMOVED] using vector_ptr = std::vector[HTML_REMOVED] 定义了一个名为 vector_ptr 的模板别名,表示为 std::vector[HTML_REMOVED] 类型的别名。该别名可以用于创建 std::vector 的指针对象,并且可以简化代码,提高代码可读性。
这是一个便利的语言特性,在编写泛型代码时,可以更加灵活地定义类型别名,提高代码的复用性。