嵌套c 命名空间嵌套什么意思

共有 1166 人关注过本帖
标题:C#能不能定义嵌套类?在命名空间的范围内充许定义字段吗??
来 自:河北石家庄
等 级:小飞侠
帖 子:975
专家分:2514
结帖率:100%
&&已结贴√
&&问题点数:20&&回复次数:3&&&
C#能不能定义嵌套类?在命名空间的范围内充许定义字段吗??
C#能不能定义嵌套类?在命名空间的范围内充许定义字段吗?例如:
namespace 111
&&public int a=0;
&&class app
&&&&&&......
&&&&&& class 222
&&&&&&&&& ......
&&&&&&&&&}
搜索更多相关主题的帖子:
&&&&&&&&&&
来 自:北京
等 级:贵宾
威 望:27
帖 子:1432
专家分:6329
当然可以了..
类是可以嵌套的。
我经常在写这样的类。
因为在winForm常常需要放一些特殊的控件。比如:在ListBox里面放一些其他的控件,我就在ListBox控件里面
放入一些其他的类(控件)。这样也很方便。
来 自:河北石家庄
等 级:小飞侠
帖 子:975
专家分:2514
第二个问题呢?
来 自:北京
等 级:贵宾
威 望:27
帖 子:1432
专家分:6329
&&得分:20&
在命名空间是不允许定义字段的。
如果想要用一个全局变量,我们需要将这个字段声明为静态字段,并且将其放在一个类中。
版权所有,并保留所有权利。
Powered by , Processed in 0.026711 second(s), 8 queries.
Copyright&, BCCN.NET, All Rights ReservedC++中namespace的使用
命名空间(namespace)是一种描述逻辑分组的机制,可以将按某些标准在逻辑上属于同一个任务中的所有类声明放在同一个命名空间中。标准C++库(不包括标准C库)中所包含的所有内容(包括常量、变量、结构、类和函数等)都被定义在命名空
间std(standard标准)中了。
定义命名空间
有两种形式的命名空间——有名的和无名的。
命名空间的定义格式为:(取自C++标准文档)
named-namespace-definition:
namespace identifier { namespace-body }
unnamed-namespace-definition:
namespace { namespace-body }
namespace-body:
declaration-seqopt
--------------------------------------------------
有名的命名空间:
namespace 命名空间名 {
&&&&&&&&&&&&&
声明序列可选
无名的命名空间:
namespace {
&&&&&&&&&&&&&
声明序列可选
-------------------------------------------------
命名空间的成员,是在命名空间定义中的花括号内声明了名称。可以在命名空间的定义内,定义命名空间
的成员(内部定义)。也可以只在命名空间的定义内声明成员,而在命名空间的定义之外,定义命名空间的成员(外部定义)。
命名空间成员的外部定义的格式为:
命名空间名::成员名 ……
namespace Outer { //
命名空间Outer的定义
// 命名空间Outer的成员i的内部定义
namespace Inner { // 子命名空间Inner的内部定义
&&&&&&&&&&&&&
void f() { i++; } // 命名空间Inner的成员f()的内部定义,其中的i为Outer::i
&&&&&&&&&&&&&
&&&&&&&&&&&&&
void g() { i++; } // 命名空间Inner的成员g()的内部定义,其中的i为Inner::i
&&&&&&&&&&&&&
void h(); // 命名空间Inner的成员h()的声明
void f(); // 命名空间Outer的成员f()的声明
// namespace Inner2; // 错误,不能声明子命名空间
void Outer::f() {i--;} //
命名空间Outer的成员f()的外部定义
void Outer::Inner::h() {i--;} //
命名空间Inner的成员h()的外部定义
// namespace Outer::Inner2 {} //
错误,不能在外部定义子命名空间
不能在命名空间的定义中声明(另一个嵌套的)子命名空间,只能在命名空间的定义中定义子命名空间。
也不能直接使用“命名空间名::成员名
……”定义方式,为命名空间添加新成员,而必须先在命名空间的定义中添加新成员的声明。另外,命名空间是开放的,即可以随时把新的成员名称加入到已有的命
名空间之中去。方法是,多次声明和 定义同一命名空间,每次添加自己的新成员和名称。例如:
namespace A {
} // 现在A有成员i和f()
namespace A {
} // 现在A有成员i、f()、j和g()
还可以用多种方法,来组合现有的命名空间,让它们为我所用。例如:
namespace My_lib {
using namespace His_
using namespace Her_
using Your_list::L
void my_f(String &, List
using namespace My_
Vector&String&
my_f(vs[2], li[5]);
使用命名空间
作用域解析运算符(::)
对命名空间中成员的引用,需要使用命名空间的作用域解析运算符::。例如:
// out1.cpp
#include "out.h"
&iostream&
int main ( ) {
Outer::i = 0;
Outer::f(); // Outer::i = -1;
Outer::Inner::f(); // Outer::i = 0;
Outer::Inner::i = 0;
Outer::Inner::g(); // Inner::i = 1;
Outer::Inner::h(); // Inner::i = 0;
std::cout && "Hello, World!"
std::cout && "Outer::i = "
&& Outer::i
&& ", Inner::i = "
&& Outer::Inner::i
}using指令(using namespace)
为了省去每次调用Inner成员和标准库的函数和对象时,都要添加Outer::Inner::和
sta::的麻烦,可以使用标准C++的using编译指令来简化对命名空间中的名称的使用。格式为:
using namespace
命名空间名[::命名空间名……];
在这条语句之后,就可以直接使用该命名空间中的标识符,而不必写前面的命名空间定位部分。因为
using指令,使所指定的整个命名空间中的所有成员都直接可用。例如:
// out2.cpp
#include "out.h"
&iostream&
// using namespace O //
编译错误,因为变量i和函数f()有名称冲突
using namespace Outer::I
int main ( ) {
Outer::i = 0;
Outer::f(); // Outer::i = -1;
f(); // Inner::f(),Outer::i = 0;
i = 0; // Inner::i
g(); // Inner::g(),Inner::i = 1;
h(); // Inner::h(),Inner::i = 0;
cout && "Hello, World!"
cout && "Outer::i = "
&& Outer::i
&& ", Inner::i = "
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。嵌套命名空间它的含义是什么,怎么去理解??_百度知道
嵌套命名空间它的含义是什么,怎么去理解??
提问者采纳
defines the QuerY portion kf the librarynamespace QueryLib{cIass Query{ &#47一个嵌套命名的空间即是一个嵌套作用域——其作用域嵌套在包含它命名空间内部, const Query&):/&#47. ;* : pbIic Item_base { &#47。嵌套命名的空间中成员的名字由外围命名空间的名字和嵌套命名的空间的名字构成. ;/ . . ;&#47。例如。外围命名空间之外的代码只能通过限定名引用嵌套命名空间中的名字,嵌套命名的空间是很有用的; :/ first nested namespace. */ defines the SaIes_item portion of the librarynamespace Bookstore {cIass Item_base { &#47,当库提供者需要防止库中每个部分的名字与库中其它部分的字冲突的时候;&#47. :名为QueryLib的命名空间和名为Bookstore的命名空间; };Query operator&(const Query&. ; };* ;* .}}命名空间cpIuspIus_primer 现在包含两个嵌套命名的空间. . 。嵌套命名空间中的名字遵循常规规则:外围命名空间中声明的名字被嵌套命名空间声明中同一名字的声明所屏蔽;&#47. *&#47,嵌套命名空间可以改进库中代码的组织:namespace cpIuspIus_primer{/ &#47.}/// }; second nested namespace. . ;cIass BuIK_item . *&#47。嵌套命名空间内部定义的名字局部于该命名空间
其他类似问题
为您推荐:
命名空间的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 嵌套空间游戏 的文章

 

随机推荐