欢迎来到天天文库
浏览记录
ID:48141638
大小:777.00 KB
页数:69页
时间:2020-01-17
《第2章_C++对C的改进及扩展.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、面向对象程序程序设计及C++主讲:俞琼第2章C++对C的改进及扩展面向对象程序设计及C++本章内容提要新增的I/O控制方法及单行注释方法const的灵活应用在类型上的变化与增加函数的新用法和要求:原型声明、内联函数、函数重载、默认参数值新增引用的灵活应用更加方便的动态内存空间的管理异常处理的机制和方法3本章内容安排2.1新的输入/输出及注释方式2.2独具魅力的const修饰符2.3有关类型的区别2.4有关函数的区别2.5新增引用的灵活运用2.6动态内存空间管理2.7C++的异常处理2.8本章小结结束本章4
2、2.1.1C++的I/O流实现输入/输出例2.1--理解C++更为方便的输入输出控制方式【例2.1】C++语言风格与C语言风格的源程序举例。/*C语言风格的源程序li2_1.c,读入几个变量,运算后输出*/#includevoidmain(){charc;inta;/*定义变量c、a、f*/floatf;scanf("%c%d%f",&c,&a,&f);a=a+c;f=f+2*a;printf("c=%ca=%df=%.1f",c,a,f);}cin>>c>>a>>f;cout<<"
3、c="<usingnamespacestd;52.1.1C++的I/O流实现输入/输出区别:C++源程序C源程序扩展名.cpp.c。输入cin>>scanf输出cout<输入方式:cin>>变量1>>变量
4、2>>…;输出方式:cout<<输出项1<<输出项2<<…;此处为输入运算符,允许用户输入数据给变量输入多个数据时以空格、回车、Tab键分隔此处为输出运算符,允许用户输出一连串数据输出项可以是常量、变量或表达式2.1.1C++的I/O流实现输入/输出72.1.1C++的I/O流实现输入/输出可以利用操纵符进行输入/输出格式控制,具体见第7章。C++中新增加了一种换行控制符endl,与C语言中常用的’’等效,实现输出时的换行。例如:cout<"a="<5、n";82.1.3名字空间1、名字空间的定义(1)定义形式:namespace名字空间名称{…;}(2)说明:以关键字namespace定义名字空间,名字空间名称是合法的用户自定义标识符。以一对大括号括起该名字空间的开始和结束处,右大括号后面不加分号。在名字空间以外声明或定义的任何实体,都可以出现在名字空间内。92.1.3名字空间2、名字空间中内容的使用方法一:名字空间名称::局部内容名其中的“::”称为域解析符或作用域运算符,用来指明该局部内容来自于哪一个名字空间,从而避免命名冲突。方法二:usingn6、amespace名字空间名称可以直接使用该名字空间中所有的内容,方法三:using名字空间名称::局部内容名可以直接使用该名字空间中这一局部内容名,而该名字空间中的其余内容在使用时仍要附加名字空间名称和域解析符。10【例2.2】关于名字空间的主要用法示例#includeusingnamespacestd;/*using声明使用一个完整的名字空间std,C++中提供的名字*///空间std涵盖了所有标准C++的定义和声明namespaceone//定义一个名字空间one,有M和inf{c7、onstintM=200;intinf=10;}//后面不加分号namespacetwo//定义一个名字空间two,有x和inf{intx;intinf=-100;}//后面不加分号11usingnamespaceone;/*using声明使用一个完整的名字空间one*/voidmain(){usingtwo::x;//using声明仅使用two中的xx=-100;//直接访问,相当于two::x=-100;cout<8、inf*=2;/*使用名字空间名::局部内容名操作未使用using声明的内容*/cout<usingnamespacestd;voidmain(){intx=5;#defineT1x+x//用宏定义定义常量T1#de
5、n";82.1.3名字空间1、名字空间的定义(1)定义形式:namespace名字空间名称{…;}(2)说明:以关键字namespace定义名字空间,名字空间名称是合法的用户自定义标识符。以一对大括号括起该名字空间的开始和结束处,右大括号后面不加分号。在名字空间以外声明或定义的任何实体,都可以出现在名字空间内。92.1.3名字空间2、名字空间中内容的使用方法一:名字空间名称::局部内容名其中的“::”称为域解析符或作用域运算符,用来指明该局部内容来自于哪一个名字空间,从而避免命名冲突。方法二:usingn
6、amespace名字空间名称可以直接使用该名字空间中所有的内容,方法三:using名字空间名称::局部内容名可以直接使用该名字空间中这一局部内容名,而该名字空间中的其余内容在使用时仍要附加名字空间名称和域解析符。10【例2.2】关于名字空间的主要用法示例#includeusingnamespacestd;/*using声明使用一个完整的名字空间std,C++中提供的名字*///空间std涵盖了所有标准C++的定义和声明namespaceone//定义一个名字空间one,有M和inf{c
7、onstintM=200;intinf=10;}//后面不加分号namespacetwo//定义一个名字空间two,有x和inf{intx;intinf=-100;}//后面不加分号11usingnamespaceone;/*using声明使用一个完整的名字空间one*/voidmain(){usingtwo::x;//using声明仅使用two中的xx=-100;//直接访问,相当于two::x=-100;cout<8、inf*=2;/*使用名字空间名::局部内容名操作未使用using声明的内容*/cout<usingnamespacestd;voidmain(){intx=5;#defineT1x+x//用宏定义定义常量T1#de
8、inf*=2;/*使用名字空间名::局部内容名操作未使用using声明的内容*/cout<usingnamespacestd;voidmain(){intx=5;#defineT1x+x//用宏定义定义常量T1#de
此文档下载收益归作者所有