2009-08-22 3 views

ответ

2

Нет, это не так. Ключевое слово using используется для переноса одного или всех членов из пространства имен в глобальное пространство имен, чтобы к ним можно было обращаться без указания имени пространства имен каждый раз, когда мы используем члены.

В приведенной инструкции использования имя пространства имен не предоставляется. Даже если вы предоставили SomeClass там также заявление вроде using SomeClass::f;, оно не будет работать, потому что SomeClass не является пространством имен.

Надеюсь, это поможет.

+3

Вы можете вводить имена в любое пространство имен, а не только глобальное. Вы * можете * использовать 'using' в функции-члене, но только в производном классе. – avakar

2

Я думаю, что using x; обычно используется внутри класса, чтобы приносить имена методов из базового класса в область видимости, чтобы избежать скрытия методов базового класса.

Возможно, вы думаете о using namespace name;, который применяется только к пространствам имен.

Вы можете быть лучше с простой функцией в линии:

void f(){ SomeClass::f(); } 
+0

Думаю, я использую твой трюк. –