在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别名,用于声明类型别名。