合法嗎?是否可以在靜態類函數[C++]上使用'using'聲明?
class SomeClass {
public:
static void f();
};
using SomeClass::f;
編輯:我忘了限定功能。抱歉。
合法嗎?是否可以在靜態類函數[C++]上使用'using'聲明?
class SomeClass {
public:
static void f();
};
using SomeClass::f;
編輯:我忘了限定功能。抱歉。
不,它不是。 using關鍵字用於將名稱空間中的一個或全部成員放入全局名稱空間,以便每次使用成員時都可以訪問它們而無需指定名稱空間的名稱。
在您給出的using語句中,不提供名稱空間的名稱。即使你在SomeClass中也提供了像using SomeClass::f;
這樣的語句,但它不起作用,因爲SomeClass不是名稱空間。
希望這會有所幫助。
您可以將名稱帶到任何名稱空間,而不僅僅是全局名稱空間。你*可以在成員函數上使用'''',但只能在派生類中使用。 – avakar 2009-08-22 08:40:16
我認爲using x;
通常在一個類中使用,將基類的方法名稱帶入作用域以避免隱藏基類方法。
您可能會想到using namespace name;
,它只適用於名稱空間。
你可能會用一個簡單的在線功能更好:
void f(){ SomeClass::f(); }
我想我會用你的內聯技巧。 – 2009-08-22 08:51:18
+1抵消可笑downvote。 – avakar 2009-08-22 08:38:09