在使用语句中指定类名的内容是什么
What Does Specifying a Class Name in a using Statement Do?
给定以下情况:
namespace Foo{
class Bar{
static const auto PRIVATE = 0;
const int private_ = 1;
void ptivateFunc() { cout << 2; }
public:
static const auto PUBLIC = 3;
const int public_ = 4;
void publicFunc() { cout << 5; }
};
}
语句using Foo::Bar;
编译...但是我不确定它可以访问它的内容。谁能解释该语句的意义,以及它可以让我访问Bar
的访问权限,而不是简单地进行using namespace Bar
?
来自cppreference:
使用
ns_name::name
;(6)
(...)
6)使用删除:从命名空间ns_name
制作符号name
,可用于无限制的查找,就好像在同一类范围,块范围或名称空间中声明,以便在此使用此命名空间。使用命名空间
ns_name
;(5)
5)使用指导性:从使用方向性之后的任何名称的不合格的名称查找的角度,直到出现范围的末端, namespace-name中的每个名称都是可见的好像是在最近的封闭名称空间中声明的,该空间既包含使用指示空间和名称空间名称。
因此,基本上您可以在名称空间Foo
之外编写Bar
,而不是Foo::Bar
(但是在使用declaration的范围内),而命名空间Foo
的其他符号仍然需要全名。
如果使用using namespace Foo
,则可以通过其本地名称访问Foo
中的所有符号,而无需明确的Foo::
。
它允许您在没有Foo
名称空间的情况下使用Bar
。
相关文章:
- "类模板示例<int>;"语句对 C++11 是什么意思?
- 主线的等价语句是什么
- 是什么使这个以'+'开头的字符串添加成为有效的语句?
- 在 if 语句中处理多个 or 的更优雅的方法是什么
- "1L << count"是什么意思?如何使用超出"unsigned long long int? "范围的语句编号打印?
- 学习时空复杂性时语句XYZ的含义是什么?
- C++:无论如何,有什么可以知道是什么触发了 If 语句
- 语句中分配给 num 的值是什么
- for 循环后的分号是什么意思?为什么第一个循环语句中有 j++
- 这个语句到底是什么意思 stack<int, list<int> > 它与 stack 有何不同<int>?
- 打印此矩阵的 if 语句是什么
- 在使用语句中指定类名的内容是什么
- 当我需要添加一个无用的返回语句时,C++约定是什么
- 当C/C++程序切换语句转到未定义的大小写并且缺少默认值时,它的正确行为是什么:
- 下面的C++语句是什么意思
- 查找语句中的"!=vector.end()"是什么意思?
- 切换或 if 语句 - C++中更清楚的是什么
- 开关语句中的逗号运算符是什么意思
- 条件语句在比较表达式时的基础是什么?
- 在下面的C++语句中放置 const 的好地方是什么