|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
java的设计机制:首先产生一个中间码,第二部编译为本地(机器)码。这个机制有很大的缺点。C++程序中的很多元素都有效来暗示它们的称号(也称为标识符)。在C++程序中,能够定名的5种元素是:
(1)函数。函数是自包括的、可实行代码的定名块。第8章将具体会商怎样界说函数。
(2)变量。变量是内存中的指定地区,用于存储数据项。第2章将叙述变量。
(3)范例。范例是能够存储的数据品种。比方范例int用于存储整数。
(4)标签。标签供应了暗示特定语句的体例。
(5)定名空间。定名空间是用一个汇合称号标识程序中一组定名项的体例。
在年夜多半古代C++编译器中,称号只能包括巨细写字母、下划线和0~9的数字。ANSI尺度还同意在称号中包括通用字符集(UniversalCharacterSet)(稍后先容)中的字符,但一样平常不必要这项功效。
称号必需由同意的字符构成,不要在称号的两头加上空缺字符(空格、制表符等),不然,编译器就不会把该称号看作是一个称号,而是看作两个称号,从而招致处置不准确。另外一个限定是称号不克不及以数字开首。上面是一些正当的称号例子:
value2MephistophelesBettyMayEarth_weightPI
上面的称号就分歧法:
8BallMary-AnnBettyMayEarth-weight2PI
提醒:
包括两个下划线的称号,大概以下划线开首,后跟一个年夜写字母的称号,是C++尺度库的保存称号,在程序中不该利用这类称号。编译器不会反省这类称号,用户只能在程序堕落时发明有一个抵触的称号。
定名空间
在下面的复杂C++程序中,有一行代码没有注释。为了了解这行代码,必要晓得甚么是定名空间。为了申明定名空间的寄义,上面先会商称号。下面C++程序中还没有注释的代码行以下:usingnamespacestd;
定名空间的称号有点像姓氏。家庭中的每一个成员都有本人的姓名,在年夜多半家庭中,每一个家庭成员都有一个唯一的名字。在Smith家中,有Jack、Jill、Jean和Jonah。在家庭成员之间,用名字来指代每一个人。可是,其他家庭的成员大概与Smith家的成员有不异的名字。比方,在Jones家中,其成员的名字是John、Jean、Jeremiah和Jonah。JeremiahJones在称号Jean时,明显是指JeanJones。假如他想指代Smith家中的Jean,就要利用全名JeanSmith。假如不是这两个家庭的成员,就只能利用每一个人的全名来指代他自己,比方JackSmith或JonahJones。
这就是定名空间的感化。定名空间的称号相似于姓氏。在定名空间外部,可使用其成员的名字。在定名空间的内部,就只能把某个实体的名字和定名空间的称号组合起来,暗示该定名空间中的实体。定名空间的目标是供应一种机制,使年夜程序的各个部分中因呈现重名而招致抵触的大概性降到最低。一样平常情形下,一个程序中包括几个分歧的定名空间。
C++尺度库中的实体都是在定名空间std中界说的,以是尺度库中的一切实体名都用std来限制。cout的全名就是std::cout,个中的两个冒号有一个十分难听的称号:局限剖析运算符,稍后胪陈。在这个例子中,该运算符把定名空间的称号std和流的称号cout分开开来。
在这个复杂的C++程序中,开首的using指令暗示我们但愿在每次援用定名空间std中的元素时,不指天命名空间的称号。持续后面的类推,使程叙文件成为std家属的一组声誉成员,就能够只用名字来援用每一个成员了。其长处之一是不必要把cout暗示为std::cout,如许程序代码就更复杂。假如省略using指令,就必需把输入语句写为:std::cout<"Thebestplacetostartisatthebeginning";
也许C#刚上市的时候有些抄袭Java吧,但自从C#2.0上市之后,整个局面就扭转乾坤了,不但Java在模仿C#,而且他从来都没能跟得上C#的脚步。 |
|