C++ using用法总结
using除了对命名空间、函数等引入外,还可以用于定义模板别名(具体的类型别名也可以)
1)命名空间权限管理
using namespace std; //释放整个命名空间到当前作用域
using std::cout; //释放某个变量到当前作用域
2)设置别名
typedef std::string _String;
using _String = std::string; //等同typedef
typedef void (pFunc*)(void);
using pFunc = void(*)(void); //更直观
3)继承:使用基类私有成员,私有方法,同名方法
//默认子类和基类中有同名方法时不继承基类方法;
class Base{
private:
int x;
public:
void func1(){cout<<"func1"<<endl;}
void func2(){ cout<<"func2"<<endl;}
int add(int x,int y){return x+y;}
float add(float x,float y){return x+y;}
};
class BB:private Base{
public:
using Base::x; //1.子类中用using声明引入基类成员名称
using Base::func1; //2.子类中用using声明引入基类私有函数名称
using Base::add; //3.引入同名的基类中方法
double add(double x,double y){return x+y;}
void func(){this->func2();}
};
int main(int argc, char *argv[]){
BB b;
b.func1();
b.func();
}