using关键字的使用
来源:互联网 发布:云计算平台建设方案 编辑:程序博客网 时间:2024/04/28 03:27
在using namespace std和使用Eigen等一些库的时候,经常看到使用using关键字。
using关键字在C++11之前和C++11之后的含义不一样。
using的作用是把后面的那个item放到当前的作用域中。
C++11之后
using的使用
1.引入命名空间
可以在当前函数中,或者当前文件中引用命名空间。
using namespace std;using namespace cv;
2.定义别名
template<typename T>using Tlist = std::list<T>;
using Tlist = std::list<char>;
using df = void(*)();//等价于typedef void(*df)()
3.使用外部构造(变量和函数等)
全局作用域是::,如果不想使用本全局作用域的成员,可以使用using来使用其他作用域的成员。
比如在派生类中使用基类的成员;当派生类中函数隐藏了基类多个同名成员函数时,为了省事等,采用using关键字表示基类的成员函数不被隐藏。
#include <iostream>using namespace std;class Base{public: void menfcn() { cout<<"Base function"<<endl; } void menfcn(int n) { cout<< cout<<"Base function with int"<<endl; }};class Derived : Base{public: using Base::menfcn;//using声明只能指定一个名字,不能带形参表 int menfcn(int){ cout<< cout<<"Derived function with int"<<endl; }};int main(){ Base b; Derived d; b.menfcn(); d.menfcn();//如果去掉Derived类中的using声明,会出现错误:error C2660: 'Derived::menfcn' : function does not take 0 arguments std::cin.ignore(std::cin.gcount()+1);//清空缓冲区 std::cin.get();//暂停程序执行 }
具体参考:http://www.cnblogs.com/ustc11wj/archive/2012/08/11/2637316.html
4.引入外部类型
using typename A;
下次使用A定义变量时就不会出现错误了。
5.总结
using后面可以接类型,函数,变量,命名空间。接类型的话要加typename等(如::),后面接变量时就不允许同作用域类再出现其他变量了。
0 0
- using关键字的使用
- C#中using关键字的使用介绍
- C#中using关键字的使用介绍
- C#中using关键字的使用
- oracle使用using关键字
- oracle使用using关键字
- using关键字的作用
- Using关键字的用法
- Using关键字的用法
- C# using 关键字使用整理
- 使用using关键字同时释放多个资源的问题
- 使用using关键字同时释放多个资源的问题
- 在oracle的连接(join)中使用using关键字
- 在oracle的连接(join)中使用using关键字
- 在oracle的连接(join)中使用using关键字
- C#中is,as,using关键字的使用
- using关键字的另类用法
- c# using 关键字的用法
- 计算机视觉、机器学习相关领域论文和源代码大集合
- ios 一些简单的 方法
- 最近遇到的一些Bug的处理
- samba服务器配置学习
- iOS CoreAnimation专题——原理篇(二) UIView block动画实现原理
- using关键字的使用
- gzip压缩指定目录下的所有文件
- IE和Chrome最大化实现方法
- [linux学习笔记]文件权限与目录配置w
- tcpdump 抓包让wireshark来分析
- yii2 分页类源码分析
- maven mirror
- ORA-00904标识符无效
- cannot found module ejs/jade 但是我确实已经安装了ejs/jade(’/‘带表或者)