C++ 为什么'using'关键字不能用于静态类成员?

C++ 为什么'using'关键字不能用于静态类成员?,c++,class,c++11,static,using,C++,Class,C++11,Static,Using,使用使标识符在全局范围内可见,但为什么不能用于静态类成员 例如使用std::string::size\u type是错误的。为什么? 为什么不能用于静态类成员 你误解了这个词的用法 使用-声明可用于将命名空间成员引入 ,或来引入基类 将成员转换为派生类定义 std::string::size\u类型是在std::string类中定义的,不是任何名称空间中的名称空间或函数 因此,使用时,您只能指定/声明。例如: using string_size_type = std::string::size_

使用
使标识符在全局范围内可见,但为什么不能用于
静态
类成员

例如
使用std::string::size\u type是错误的。为什么?

为什么不能用于
静态
类成员

你误解了这个词的用法

使用
-声明可用于将命名空间成员引入 ,或来引入基类 将成员转换为派生类定义

std::string::size\u类型
是在
std::string
类中定义的,不是任何名称空间中的名称空间或函数

因此,使用
时,您只能指定/声明。例如:

using string_size_type = std::string::size_type;
为什么不能用于
静态
类成员

你误解了这个词的用法

使用
-声明可用于将命名空间成员引入 ,或来引入基类 将成员转换为派生类定义

std::string::size\u类型
是在
std::string
类中定义的,不是任何名称空间中的名称空间或函数

因此,使用
时,您只能指定/声明。例如:

using string_size_type = std::string::size_type;

例如,“struct Test{static int a;};using Test::a;”那么有没有办法在没有::operator的情况下提到静态类成员?@AlanJian我已经更新了答案。对于类的静态成员,这是不可能的。但是对于任何名称空间作用域中的函数,这可能是:例如,“struct Test{static int a;};使用Test::a;”那么有没有办法在没有::operator的情况下提到静态类成员?@AlanJian我已经更新了答案。对于类的静态成员,这是不可能的。但对于任何名称空间作用域中的函数,这可能是: