编程语言
首页 > 编程语言> > C++中的using三个作用

C++中的using三个作用

作者:互联网

1.using 命名空间

     C++为了减少全局类和变量之间的冲突,引入命名空间的概念,类和变量可以属于某个命名空间。

     namespace tesseract {             class className {             };      }     在某个文件中使用该命名空间中的类有两种方式:     方式一:tesseract::className     classInstance;     方式二:using  namespace tesseract;                 using  tesseract::className;

2. using 定义新类型

using Ustring = std::string;   //!使用 using typeName_self = stdtypename;

//更直观
typedef void (tFunc*)(void);
using uFunc = void(*)(void);
 

3. 改变接口继承权限

继承体系中,改变部分接口的继承权限。

有这样一种应用场景,比如我们需要私有继承一个基类,然后又想将基类中的某些public接口在子类对象实例化后对外开放直接使用。如下即可

  复制代码
#include <iostream>
#include <typeinfo>

using namespace std;

class ClassA
{
public:
    ClassA()
    {}
    ~ClassA(){}

    void func1()
    {
        cout<<"func1"<<endl;
    }
    void func2()
    {
        cout<<"func2"<<endl;
    }
};

class ClassB:private ClassA
{
public:
    using ClassA::func1;//需要在ClassB的public下释放才能对外使用,
    void dis2show()
    {
        this->func1();
    }
};

int main(int argc, char *argv[])
{

    ClassB clB;
    clB.func1();
    clB.dis2show();

    return 0;
}
复制代码

 

 

标签:void,namespace,clB,ClassA,三个,C++,using,tesseract
来源: https://www.cnblogs.com/songhaibin/p/13502736.html