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 ;
}

C++类型起别名的方式的更多相关文章

  1. 判断浏览器类型用 document.documentMode方式,

    if ( document.documentMode && document.documentMode < 9 ){ document.write( '<script sr ...

  2. 记住 Python 变量类型的三种方式

    title: 记住变量类型的三种方式 date: 2017-06-11 15:25:03 tags: ['Python'] category: ['Python'] toc: true comment ...

  3. 访问某类型的元数据的方式-TypeDescriptor 类

    .NET Framework 提供了两种访问某类型的元数据的方式:通过 System.Reflection 命名空间中提供的反射 API,以及通过 TypeDescriptor 类.反射是可用于所有类 ...

  4. 检测对象类型的两种方式,constructor属性和instanceof

    //本例是为了记录检测对象类型的两种方式,即constructor属性和instanceof操作符.详见<高三>P145        function Person(name, age, ...

  5. 11、mybatis的映射xml中参数类型的别名

    在mapper.xml中,定义很多的statement,statement需要parameterType指定输入参数的类型.需要resultType指定输出结果的映射类型. 如果在指定类型时输入类型全 ...

  6. EditText限制输入字符类型的几种方式

    最近的项目上需要限制EditText输入字符的类型,就把可以实现这个功能的方法整理了一下: 1.第一种方式是通过EditText的inputType来实现,可以通过xml或者Java文件来设置.假如我 ...

  7. C++ : 类型的别名和对象的别名

    #include <iostream>using namespace std; class human{public:    void Talk();    ~human(){cout&l ...

  8. MYSQL索引的类型和索引的方式

    索引的类型: normal:表示普通索引 unique:表示唯一的,不允许重复的索引,如果该字段信息保证不会重复例如身份证号用作索引时,可设置为unique full textl: 表示 全文搜索的索 ...

  9. Dynamics CRM 通过Odata创建及更新记录各类型字段的赋值方式

    CRM中通过Odata方式去创建或者更新记录时,各种类型的字段的赋值方式各不相同,这里转载一篇博文很详细的列出了各类型字段赋值方式,以供后期如有遗忘再次查询使用. http://luoyong0201 ...

随机推荐

  1. stacked generalization 堆积正则化 堆积泛化 加权特征线性堆积

    https://en.wikipedia.org/wiki/Ensemble_learning Stacking Stacking (sometimes called stacked generali ...

  2. django mysql setting 设置

    django mysql setting  django mysql 设置 DATABASES = {    'default': {        'ENGINE': 'django.db.back ...

  3. MySql索引建立规则

    为了使索引的使用效率更高,在创建索引时,必须考虑在哪些字段上创建索引和创建什么类型的索引.本小节将向读者介绍一些索引的设计原则. 1.选择唯一性索引 唯一性索引的值是唯一的,可以更快速的通过该索引来确 ...

  4. iOS app submission : missing 64-bit support

  5. Swift - 修改导航栏的样式(文字颜色,背景颜色,背景图片)

    默认情况,导航栏UINavigationController的样式如下,如果想要使用代码修改样式也是比较简单的. 1,修改导航栏背景色 1 2 3 //修改导航栏背景色 self.navigation ...

  6. 关于JMS和MQ

    2.1 什么是JMS? JMS是java的消息服务,JMS的客户端之间可以通过JMS服务进行异步的消息传输. 2.2 什么是消息模型 ○ Point-to-Point(P2P) --- 点对点 ○ P ...

  7. java调用shell命令及脚本

    shell脚本在处理文本及管理操作系统时强大且简单,将shell脚本结合到应用程序中则是一种快速实现的不错途径本文介绍使用java代码调用并执行shell 我在 -/bin/ 目录下写了jbossLo ...

  8. JAVA-关键字&标识符

    关键字: 关键字就是在java程序中具备特殊含义的标识符.关键字一般用于描述一个程序的结构或者表示数据类型.他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名.方法名.类名.包名. ...

  9. CSS3实现3D木块旋转动画

    CSS3实现3D木块旋转动画,css3特效,旋转动画,3D,立体效果,CSS3实现3D木块旋转动画是一款迷人的HTML5+CSS3实现的3D旋转动画. 代码下载:http://www.huiyi8.c ...

  10. HDU 2643 Rank:第二类Stirling数

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2643 题意: 有n个个选手参赛,问排名有多少种情况(可以并列). 题解: 简化问题: 将n个不同的元素 ...