2009-08-22 3 views

Répondre

2

Non, ce n'est pas le cas. Le mot clé using est utilisé pour amener un ou tous les membres d'un espace de noms dans l'espace de nom global, de sorte qu'ils puissent être accédés sans spécifier le nom de l'espace de noms chaque fois que nous utilisons les membres.

Dans l'instruction using que vous avez donnée, le nom de l'espace de noms n'est pas fourni. Même si vous avez fourni SomeClass avec une instruction similaire à using SomeClass::f;, cela ne fonctionnera pas car SomeClass n'est pas un espace de noms.

Espérons que cela aide.

+3

Vous pouvez placer des noms dans n'importe quel espace de noms, pas seulement global. Vous * pouvez * utiliser 'using' sur la fonction membre, mais seulement dans une classe dérivée. – avakar

2

Je pense que using x; est normalement utilisé à l'intérieur d'une classe pour amener les noms de méthodes d'une classe de base dans la portée pour éviter de masquer les méthodes de classe de base.

Vous pensez peut-être à using namespace name; qui s'applique uniquement aux espaces de noms.

Vous pouvez être mieux avec une simple fonction en ligne:

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

Je suppose que je vais utiliser votre astuce inline. –

Questions connexes