- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
九.C++语法的外围基础
⒈新的语法规定与新算符
文件扩展名等的规定
目前使用的C++标准为ISO-14882:1998。该标准规定的C++源程序文件扩展名为.CPP,头文件没有扩展名,为兼容前一代标准,编译系统仍支持扩展名为.H或.HPP的头文件,但若使用旧标准,则不能得到命名空间的支持。在不同的C++编译系统中都支持本标准。但因在不同的操作系统环境下运行,(标准)输入/输出要依赖相应系统的支持,所以会要求一些特别的编译(连接)设置(如在VC中最接近标准C++的编译设置就是空的Win32控制台应用程序类型,而不推荐选择.Net控制台应用程序类型)。C#语言源代码文件的扩展名为.CS。C#语言的语法和符号体系与JAVA语言非常接近,一个C#程序内不能没有类的声明。C#语言的另外一个特点是数据类型要求严格匹配(如取消了将数组与指针等价的概念);关键字的大小写要求比C++语言的语法还要严厉。总之,C#语言的灵活性要小于C++语言。
命名空间(Namespace)
命名空间是独立确定数据作用域的存储空间。无论何种结构的数据都要归属于某个命名空间所划定的存储空间内。这在与程序等价的概念上是一个完美的补充。在一个命名空间内可以声明任何类型的数据、类和类对象。不同的命名空间语句可以嵌套(但不能将命名空间嵌套在其成员中,如将命名空间定义在类中等),相同命名空间内的不同成员定义语句可以间断排列。若没有使用指定的命名空间,则所定义的数据、类和类对象都属于全局命名空间。全局命名空间无须指明。
C++语法:namespace 名称{数据与类声明};
C#语法:namespace 名称{类声明};
例1:在C++语言内不同命名空间内的同名数据
namespace a
{
int i;
namespace c{int i;};
};
namespace b{int i;};
namespace a{int k;};
void main()
{
a::i=0;/*本行内的::为C++的域连接算符*/
a::c::i=0;
a::k=0;
}
C++编译系统所使用的数据被安排在诸如std、system等系统命名空间内。与此相对应的C#语言编译系统所使用系统命名空间是System。在使用C++编码中使用最广泛的系统命名空间当属std,该命名空间中声明了标准的系统输入和输出的全部数据和类对象。由于标准的系统输入和输出的数据会被频繁引用,为了减少反复出现的域连接算符,可以在恰当的位置使用using namespace语句指定默认的系统命名空间(见例3)。相比较之下,C#语言中的命名空间的约束要多一些。一个C#程序的启动入口函数必须被置于某个命名空间之内。
例2:
namespace NS1
{
class A
{
int i;
static void Main()
{int i;}
};
namespace NS2
{
class B
{
int i;
};
}
}
标准输入和输出符号
在目前的标准中,标准输入和输出操作是通过声明在std命名空间内系统保留数据名来实现的。
C++语法规定:
标准输入算符:std::cin“输入内容”…变量;
标准输出算符:std::cout“输出内容”…变量;
C#语法规定:
System.Console.Write(变量);
System.Console.Read();//按字符类型从键盘获取数据
由于程序中对此类的系统标准输入和输出操作频繁引用,为了减少编码的重复量,在C++语言中可以使用using namespace语句指定std为默认的系统命名空间;在 C#语言中可以使用using System语句指定System为默认的系统命名空间。
例3:
#includeiostream using System;
using namespace std; class A
void main() {
{ static void Main()
cout$$$$$endl; {
cout*****endl; char i;
} i=(char)Console.Read();
Console.Write(i);
}//若要输入纯数值该当如何?
};
在此前的标准内,C++语言是将cin和cout当作一种系统标准流输入输出函数来安排的,由iostream头文件予以声明的。但此种早期标准的头文件声明不能与新标准的头文件声明混用。C#语言没有头文件声明,但仍有预处理语句,语法与C++相同。
动态内存分配算符
由C语言的动态内存分配函数过渡到C++的运算符,表明面向对象的程序对内存空间的动态分配的频繁程度需要简化语言的相
文档评论(0)