在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
別名,用于聲明類型別名。