C++ using用法总结

1)配合命名空间,对命名空间权限进行管理

using namespace std;//释放整个命名空间到当前作用域
using std::cout; //释放某个变量到当前作用域

2)类型重命名

作用等同typedef,但是逻辑上更直观。

#include <iostream>

using namespace std;

#define DString std::string    //! 不建议使用!

typedef std::string TString;   //! 使用typedef的方式

using Ustring = std::string; //!使用 using typeName_self = stdtypename; //更直观
typedef void (tFunc*)(void);
using uFunc = void(*)(void);
int main(int argc, char *argv[])
{ TString ts("String!");
Ustring us("Ustring!");
string s("sdfdfsd");    cout<<ts<<endl;
cout<<us<<endl;
cout<<s<<endl;
return ;
}

3)继承体系中,改变部分接口的继承权限。

有这样一种应用场景,比如我们需要私有继承一个基类,然后又想将基类中的某些public接口在子类对象实例化后对外开放直接使用。如下即可

#include <iostream>
//#include <array>
#include <typeinfo> using namespace std; class Base
{
public:
Base()
{}
~Base(){} void dis1()
{
cout<<"dis1"<<endl;
}
void dis2()
{
cout<<"dis2"<<endl;
}
}; class BaseA:private Base
{
public:
using Base::dis1;//需要在BaseA的public下释放才能对外使用,
void dis2show()
{
this->dis2();
}
}; int main(int argc, char *argv[])
{ BaseA ba;
ba.dis1();
ba.dis2show(); return ;
}

最新文章

  1. C#遍历文件夹下所有文件
  2. 【转】高效Java编程工具集锦
  3. 用 TWebBrowser 查找网页上的按钮,编辑框,
  4. Notepad++ 开启「切分窗口」同时检视、比对两份文件
  5. 如何将maven项目导入MyEclipse
  6. LoadRunner AJAX TruClient协议Tips and Tricks
  7. XCode的 Stack Trace,调试时抛出异常,定位到某一行代码
  8. 修改host
  9. css里设置一个div在顶部固定,不随滚动条滚动而滚动
  10. Java 期末复习提纲
  11. C#和asp.net执行外部EXE程序
  12. conn,stmt,rset 的关闭(规范)
  13. oralce之存储过程
  14. 自动FTP的小脚本
  15. MemCached Cache Java Client封装优化历程
  16. 【设计模式 - 16】之迭代器模式(Iterator)
  17. AIX系统上压缩与解压文件
  18. 使用BeanUtils组件
  19. HDU OJ 5437 Alisha’s Party 2015online A
  20. JS报表打印分页CSS

热门文章

  1. a positive definite matrix
  2. mysql随机查询
  3. PR 批量导入
  4. HDU2457 DNA repair —— AC自动机 + DP
  5. Centos虚拟机克隆后的ip配置
  6. Contiki 2.7 Makefile 文件(六)
  7. sublime 相关配置和快捷键
  8. Dual Path Networks(DPN)——一种结合了ResNet和DenseNet优势的新型卷积网络结构。深度残差网络通过残差旁支通路再利用特征,但残差通道不善于探索新特征。密集连接网络通过密集连接通路探索新特征,但有高冗余度。
  9. Mysql学习_02_mysql数据导入导出
  10. tomcat 6.0 安装及配置