C++中的using三个作用
2020-08-14 15:55 宋海宾 阅读(661) 评论(0) 收藏 举报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;
}

浙公网安备 33010602011771号