C++ --- using用法总结
Posted Overboom
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ --- using用法总结相关的知识,希望对你有一定的参考价值。
1. 配合命名空间,对命名空间进行权限管理
using namespace std;//释放整个命名空间到当前作用域
using std::cout; //释放某个变量到当前作用域
2. 类型重命名
作用等同于typedef
typedef std::vector<int> intvec;
using intvec = std::vector<int>; //这两个写法是等价的
再来看一个函数指针的例子
typedef void (*FP) (int, const std::string&);
using FP = void (*) (int, const std::string&);
3. 继承中,在子类引用基类成员
有这样一种应用场景,比如我们需要私有继承一个基类,然后又想将基类中的某些public接口在子类对象实例化后对外开放直接使用。如下即可
class Base
{
protected:
void test1() { cout << "test1" << endl; }
void test1(int a) {cout << "test2" << endl; }
int value = 55;
};
class Derived : private Base //使用默认继承
{
public:
//using Base::test1; //using只是声明,不参与形参的指定
//using Base::value;
void test2() { cout << "value is " << value << endl; }
};
private继承子类中是无法访问基类成员的,即test2会编译出错。但是如果我们把上面注释的声明给放开,则没有问题。
参看链接:
https://blog.csdn.net/weixin_39640298/article/details/84641726
https://www.cnblogs.com/wangkeqin/p/9339862.html
以上是关于C++ --- using用法总结的主要内容,如果未能解决你的问题,请参考以下文章
c++中typenametypedef以及using关键字用法