在C++中,using
关键字有两种不同的用法和含义。
using
用于声明别名:
当我们想要给一个已经存在的类型或命名空间取一个新的别名时,可以使用using
关键字。例如:
using MyInt = int;
using namespace std;
上述代码中,using MyInt = int
将int
类型重命名为MyInt
,而using namespace std
将命名空间std
引入到当前作用域,允许我们直接使用其中的定义,而不需要加上命名空间前缀。
using
用于引入基类的成员函数:
当一个派生类继承自一个基类,如果想要在派生类中直接使用基类的某个成员函数,可以使用using
关键字。例如:
class Base {
public:
void print() {
cout << "Base class" << endl;
}
};
class Derived : public Base {
public:
using Base::print;
};
int main() {
Derived d;
d.print(); // 直接调用基类的print()函数
return 0;
}
上述代码中,using Base::print;
将基类Base
的print()
函数引入到派生类Derived
中,允许我们直接在Derived
类中调用print()
函数,而不需要重写一个新的函数。
注意:在C++11之前的标准中,using
关键字只能用于引入基类的成员函数,而在C++11标准中,还引入了using
别名,用于声明类型别名。