それは法的ですか?静的クラス関数[C++]で 'using'宣言を使用することはできますか?
class SomeClass {
public:
static void f();
};
using SomeClass::f;
編集:機能を限定するのを忘れました。ごめんなさい。
それは法的ですか?静的クラス関数[C++]で 'using'宣言を使用することはできますか?
class SomeClass {
public:
static void f();
};
using SomeClass::f;
編集:機能を限定するのを忘れました。ごめんなさい。
いいえ、そうではありません。 usingキーワードは、メンバーを使用するたびに名前空間の名前を指定せずに、名前空間の1つまたはすべてのメンバーを名前空間からグローバル名前空間に移動させるために使用されます。
指定したusingステートメントでは、名前空間の名前は提供されていません。たとえあなたがSomeClassにusing SomeClass::f;
のようなステートメントを提供したとしても、SomeClassは名前空間ではないので動作しません。
これが役に立ちます。
グローバル名だけでなく、任意のネームスペースに名前を持たせることができます。メンバー関数では 'using'を使うことができますが、派生クラスではtoだけ使用できます。 – avakar
using x;
は、基本クラスのメソッドを隠すのを避けるために、基本クラスからメソッド名をスコープに持ち込むために、通常はクラス内で使用されると思います。
using namespace name;
は名前空間にのみ適用されると考えられます。
あなたは、単純なイン・ライン機能を備えたほうが良い場合がありますばかげdownvoteに対抗するために
void f(){ SomeClass::f(); }
私はあなたのインライントリックを使用すると思います。 –
+1。 – avakar