9

合法吗?



class SomeClass {
public:
  static void f();
};

using SomeClass::f;

编辑:我忘了限定功能。对不起。

4

2 回答 2

5

不它不是。using关键字用于将命名空间中的一个或所有成员带入全局命名空间,这样每次使用成员时无需指定命名空间名称即可访问它们。

在您给出的 using 语句中,未提供命名空间的名称。即使您在那里为 SomeClass 提供了类似的语句using SomeClass::f;,它也不起作用,因为 SomeClass 不是命名空间。

希望这可以帮助。

于 2009-08-22T08:34:44.903 回答
4

我认为这using x;通常在类内部使用,以将基类中的方法名称带入范围,以避免隐藏基类方法。

您可能正在考虑using namespace name;仅适用于命名空间。

使用简单的内联函数可能会更好:

void f(){ SomeClass::f(); }
于 2009-08-22T08:42:45.467 回答