C++类型起别名的方式
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++类型起别名的方式的更多相关文章
- 判断浏览器类型用 document.documentMode方式,
if ( document.documentMode && document.documentMode < 9 ){ document.write( '<script sr ...
- 记住 Python 变量类型的三种方式
title: 记住变量类型的三种方式 date: 2017-06-11 15:25:03 tags: ['Python'] category: ['Python'] toc: true comment ...
- 访问某类型的元数据的方式-TypeDescriptor 类
.NET Framework 提供了两种访问某类型的元数据的方式:通过 System.Reflection 命名空间中提供的反射 API,以及通过 TypeDescriptor 类.反射是可用于所有类 ...
- 检测对象类型的两种方式,constructor属性和instanceof
//本例是为了记录检测对象类型的两种方式,即constructor属性和instanceof操作符.详见<高三>P145 function Person(name, age, ...
- 11、mybatis的映射xml中参数类型的别名
在mapper.xml中,定义很多的statement,statement需要parameterType指定输入参数的类型.需要resultType指定输出结果的映射类型. 如果在指定类型时输入类型全 ...
- EditText限制输入字符类型的几种方式
最近的项目上需要限制EditText输入字符的类型,就把可以实现这个功能的方法整理了一下: 1.第一种方式是通过EditText的inputType来实现,可以通过xml或者Java文件来设置.假如我 ...
- C++ : 类型的别名和对象的别名
#include <iostream>using namespace std; class human{public: void Talk(); ~human(){cout&l ...
- MYSQL索引的类型和索引的方式
索引的类型: normal:表示普通索引 unique:表示唯一的,不允许重复的索引,如果该字段信息保证不会重复例如身份证号用作索引时,可设置为unique full textl: 表示 全文搜索的索 ...
- Dynamics CRM 通过Odata创建及更新记录各类型字段的赋值方式
CRM中通过Odata方式去创建或者更新记录时,各种类型的字段的赋值方式各不相同,这里转载一篇博文很详细的列出了各类型字段赋值方式,以供后期如有遗忘再次查询使用. http://luoyong0201 ...
随机推荐
- valgrind报错VEX temporary storage exhausted
valgrind的使用请参考: 使用valgrind进行内存泄漏和非法内存操作检测 最近在使用valgrind进行内存泄漏检测是时,竟然报错,如下: VEX temporary storage exh ...
- linux字符设备学习笔记【原创】
1.申请设备号 int register_chrdev_region(dev_t from, unsigned count, const char *name) 指定从设备号from开始,申请coun ...
- C++中输出 位宽和小数点后位数 的控制
要用到这个头文件: <iomanip> setw(x) : 表示控制输出x的位宽 setprecision(x) :表示 控制输出小数点后 x 位 cout.precision(x): 表 ...
- 介绍 Java 的内存泄漏
java最明显的一个优势就是它的内存管理机制.你只需简单创建对象,java的垃圾回收机制负责分配和释放内存.然而情况并不像想像的那么简单,因为在Java应用中经常发生内存泄漏.脚本代码 本教程演示了什 ...
- html5基本格式
html5基本格式 学习要点: HTML5 文档的基本格式 2. 开发工具的基本操作 一. 文档基本格式 <!DOCTYPE html> 文档声明,告诉计算机这是一个HTML5文档. ...
- Ice php配置
1) Removed the php extension directories and recompiled apache/PHP2) Rebooted the machine.3) I remov ...
- Gym:101630J - Journey from Petersburg to Moscow(最短路)
题意:求1到N的最短路,最短路的定义为路径上最大的K条边. 思路:对于每种边权,假设为X,它是第K大,那么小于X的变为0,大于K的,边权-X.然后求最短路,用dis[N]+K*X更新答案. 而小于K的 ...
- mysql客户首末单时间 group by用法_20160927
一.取用户第一次下单时间 SELECT city,username,`order_date` AS 首单日期,金额 AS 首单金额 FROM ( SELECT city,username,`order ...
- bzoj 3267: KC采花&&3272&&3638&&3502 线段树
题目大意 给定一个长为n的序列,维护两种操作: 1.单点修改 2.在[l,r]这段区间中取k个互不相交的子段,使子段之和最大. \(n \leq 50000,k \leq 20\) 题解 四倍经验.( ...
- codevs 3049 舞蹈家怀特先生
题目描述 Description 怀特先生是一个大胖子.他很喜欢玩跳舞机(Dance Dance Revolution, DDR),甚至希望有一天人家会脚踏“舞蹈家怀特先生”.可惜现在他的动作根本不能 ...