c++11 using作用

c++11 using的作用

1.引用命名空间,例如:using namespace std;

2.可以让基类同名函数在派生类可见,假如想通过派生类来调用基类的重载函数,则可以用using来实现, 子类调用父类的重载函数

方法如下: 

//父类:
class Parent
{

public:
    void xxfunc();//父类的函数,不带参
    void xxfunc(int);//带1参
    void xxfunc(int,int);//带2参
    void xxfunc(int,int,int);//带3参
    void xxfunc(int,int,int,int);//带4参
}


//子类:
class Child: public Parent
{

public:
    void xxfunc(int);//子类的函数,和父类有同名的函数

public:
    using Parent::xxfunc;// 把父类的xxfunc函数暴露出来, 格式:using 父类::函数名

}

//调用
Child child;
child.xxfunc();//此时调用的是父类的不带参xxfunc函数
child.xxfunc(1);//此时调用的是子类的带1参xxfunc函数 , 注意
child.xxfunc(1,2);//此时调用的是父类的带2参xxfunc函数
child.xxfunc(1,1,1);//此时调用的是父类的带3参xxfunc函数
child.xxfunc(1,1,1,1);//此时调用的是父类的带4参xxfunc函数

3.用using定义别名

1.模板起别名,例子如下: 

//c++98
template <typename T>
class map_t1
{
    typedef std::map <std::string, T> type; //定义了一个类型,type只是一个别名
}

//调用
map_t1<int>::type map1;
map1.insert({"a", 1});



//c++11 
//用using 实现,using用来给一个类型模板起别名
template <typename T>
using map_type= std::map <std::string, T>; //定义了一个类型,map_type只是一个别名

//调用
map_type<int> map2;
map2.insert({"b", 1});

1.函数指针,例子如下:  

typedef int(*FuncType)(int, int); //用typedef定义函数指针
using FuncType = int(*)(int, int); //用using定义函数指针

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值