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关键字用法

C++开发之using定义模板别名

C++开发之using定义模板别名

C++开发之using定义模板别名

c++中typenametypedef以及using关键字用法

c++中typenametypedef以及using关键字用法