合法吗?
class SomeClass {
public:
static void f();
};
using SomeClass::f;
编辑:我忘了限定功能。对不起。
不它不是。using关键字用于将命名空间中的一个或所有成员带入全局命名空间,这样每次使用成员时无需指定命名空间名称即可访问它们。
在您给出的 using 语句中,未提供命名空间的名称。即使您在那里为 SomeClass 提供了类似的语句using SomeClass::f;
,它也不起作用,因为 SomeClass 不是命名空间。
希望这可以帮助。
我认为这using x;
通常在类内部使用,以将基类中的方法名称带入范围,以避免隐藏基类方法。
您可能正在考虑using namespace name;
仅适用于命名空间。
使用简单的内联函数可能会更好:
void f(){ SomeClass::f(); }