第1章+C++对C性能的扩充课件

PPT
  • 阅读 51 次
  • 下载 0 次
  • 页数 62 页
  • 大小 722.000 KB
  • 2022-11-24 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
第1章+C++对C性能的扩充课件
可在后台配置第一页与第二页中间广告代码
第1章+C++对C性能的扩充课件
可在后台配置第二页与第三页中间广告代码
第1章+C++对C性能的扩充课件
可在后台配置第三页与第四页中间广告代码
第1章+C++对C性能的扩充课件
第1章+C++对C性能的扩充课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 62
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
文本内容

【文档说明】第1章+C++对C性能的扩充课件.ppt,共(62)页,722.000 KB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-44714.html

以下为本文档部分文字说明:

1第1章C++对C性能的扩充21行注释2输入输出3数据类型4变量主要内容5函数6new及delete7引用类型31.行注释在C++中,新增了行注释////sum.cpp#include<iostream>//编译预处理命令usingnamespacestd

;//使用命令空间stdintmain()//主函数首部{intx,y,sum;//定义3个整型变量cout<<"Pleaseinputtwointegers:"<<'\n';//提示用户由键盘输入两个整数cin>>x;//从键盘输入变量x的值cin>>y;

//从键盘输入变量y的值sum=x+y;//将x+y的值赋给整型变量sumcout<<"x+y="<<sum<<endl;//输出两个整数的和sumreturn0;//如程序正常结束,//向操作系统返回一个数值0}<4C语言中我们用库函数printf和scanf对基本变量进行输入输出。如下程

序:2.数据的输入和输出#include<stdio.h>voidmain(){inta;scanf("%d",&a);printf("a=%d\n",a);}C++扩展了C的输入输出,不但可用printf、scanf函数,还可以用输入输出流。5C++输入输出标

准流流名含义默认设备流名含义默认设备cin标准输入键盘cout输出屏幕以上标准流为利用面向对象方法设计的输入输出流类的对象.使用cin的格式:cin>>变量名1[>>变量名2>>…变量名n]使用cout的格式:cout<<表达1[<<表达式2<<表达式n>>]6#inc

lude<iostream.h>intmain(){for(inti=1;i<=3;i++){cout<<"count="<<i<<endl;}inta;floatf;charc;cin>>a>>f>>c;co

ut<<"a="<<a<<"f="<<f<<"c="<<c<<endl;return0;}例如:注:使用cin与cout必须在程序开头包含iostream头文件!7C++输入输出流的优点简单易用,根据操作对象自适应,无需指定变量的类型;可对自定义的类型进行输入输出;

提高了安全性和可扩展性。<83.数据类型枚举类型一般形式:enum枚举类型名{枚举列}[枚举变量表]C++中定义枚举变量时,不必在枚举名前加标识符enum共用体类型同结构体类型,联合类型一旦定义,就可以直接使用联合名定义变量,而不用在联合体名

前加标识符union。结构体类型:C++语言,结构体一旦定义,则可以直接使用该结构体名定义变量,不需在结构体前加struct标识。如:structstudent{xxx};studentstu;另外,C++中的结构体类型所有的属性和方法都是公有的。新增类类

型C++中的struct作为特殊的类类型中不仅有属性数据还有成员函数,但是所有访问属性都是公有。9C语言中我们都是用字符数组来表示字符串的,在C++除了可以用字符数组表示外,我们还可以用string类型来更方便的表示字符串,string实

质上是C++标准库(stl)中用面向对象方法定义的字符串类,它并不是C++提供的基本类型。#include<iostream>#include<string>//必须包含此头文件usingnamespacestd;voidmain(){stringstr1;str1="abcdefg

";stringstr2=str1;//用一个字符串给另一个赋值cout<<str1<<endl;//对字符串进行输入输出cout<<str1[5]<<endl;//操作字符串中的单个字符str1[5]='k';cout<<str1

<<endl;}string类型10string字符串的运算C语言中对字符串进行运算要用到strcat(),strcpy(),strcmp()等库函数,C++中的string字符串类,可以直接用+,>,<,=等运算符对字符串进行操作。#include<ios

tream>#include<string>//必须包含此头文件usingnamespacestd;voidmain(){stringstr1="abcd";stringstr2="efgh";cout<<str1+str2<

<endl;//字符串连接//字符串比较if(str1<str2)cout<<"str1小于str2"<<endl;elsecout<<"str1大于等于str2"<<endl;}<114.变量正确理解C中的变量的定义要求:一般应该集中定义出,不能在语句块中

定义。程序例:voidmain()1.{intx=1;//正确2.for(inti=0;i<10;i++)//错误3.{4.inty=2;5.}6.}12(1)C++变量定义规则可以采用“随用随定义”的方式定义出变量,即变量的块内定义C++中允许变量在使用之前的任一语句块中

定义出来,包括for循环中何为块?块:C++语言把{}括起来的一块区域称为块。块变量:定义在某个块中的变量。块作用域:变量定义的由花括号括起来的范围,块变量在其作用域可见,而在作用域外不可见。13例如:1.#include<iostream.h>2.voidmain(vo

id)3.{4.intx=1;//局部变量5.{6.inty;//块内变量7.8.x=3;y=4;9.}10.cout<<"y="<<y<<endl;11.}voidmain(void){for(inti=1;i<10;i++){intz=1;//块

内变量}cout<<"z="<<z;}14正确理解C++中的变量的各种作用域文件域—全局变量(其作用域为从定义点到当前文件结束有效)。函数域—局部变量(其作用域为本函数内有效)。函数原型域—函数的形参,为局部变量,只在该函数体内

有效。块内域—块内定义的变量(比局部变量的作用域更小),块内定义的变量的作用域为从定义点到当前块内有效,语句块执行完毕,自动释放。15例如:1.intX=1;2.voidFunction(inta)3.{intb=a;4.

X=b;5.Y=X;6.}7.voidmain()8.{intY=2;9.X=2;10.Function(X);11.for(inti=0;i<10;i++)12.{X=2;13.intC=0;14.}15.X=2,Y=3;16.C=X;a=3;b=4;17.}//

错误//正确//正确//正确//正确//错误//全局变量//函数的形参//局部变量//局部变量//块定义的变量//块定义的变量16语句块内变量的应用目的※通过缩小变量的作用域来缩短变量的生存期,充分利用内存空间,优化内存

的使用voidmain(){intX;//局部变量for(X=1;X<10;X++){}}//在此时X才被释放voidmain(){for(intX=1;X<10;X++){//块内变量}//在此时X就被释放}1

7(2)作用域运算符与命名空间C语言中变量命名的要求:在同一个程序中应该尽可能保持变量名的唯一性,最好不要同名。#include"iostream.h"intX=1;voidmain(){intX=2;cout<<X;}相同吗??此时输出的X值是为“1”还是“2”系统采用同名

覆盖原则决定,输出为2如果要输出全局变量X的值,怎么办?18C++中的全局作用域限定符作用:它能使程序员访问在某外部块中所定义的全局变量,以免被同名的局部变量所覆盖。访问规则:有::限定的同名符号是全局变量,无::限定的同名符号是局部变量。#include<iostr

eam.h>intX=1;voidmain(){intX=2;cout<<"localX="<<X<<endl;//未限定时的符号名为局部//符号名cout<<"globalX="<<::X;//采用

“::”限定时的符号名为全//局符号名}19全局作用域限定符的编程规则(1)只能将“::”放在具有全局符号名说明的变量名之前,不能放在无全局符号名说明的局部变量名之前。intX=1;voidmain(void){intX=2;intY=3;::X=10;//正确,因为有同名的全局符号名说明::Y

=4;//错误,因为无同名的全局符号名说明}全局作用域限定符“::”不仅可以限定变量,也可以用来限定函数20名字空间--解决不同模块相同名字冲突问题。一个名字空间可以看作一个比程序模块更大的包。格式:Nam

espaceModuleName{<程序代码>}注:一个给定名字空间的所有代码可以位于同一个文件中,也可以分布在多个文件中,但是在每一个文件中代码都要按照上述语句格式进行封装。其作用域有两方面的含义:(1)同一个名字空间作用域内不允许存在同名标识符;(2)不

同名字空间作用域内的标识符不能直接调用,需要添加名字空间的作用域限定运算符。21例如://a.h#includenamespaceA{函数f1{}函数f2{}变量s;}若要在A名字空间外,调用f1、f2函数和变量s,如何表达?方法1:A::f1();方法2:#include“A.h”

voidmain(){usingnamespaceA;f1();//名字空间A中的函数}22(3)用const关键字定义常变量在C语言中我们用#define宏命令来定义常量,#define只是在编译时进行字符串替换,运行时系统不为其分配内存空间。用它有时会出现意

想不到的错误。如下所示:#include<iostream.h>#definePI3#defineRa+bintmain(){inta=2;intb=3;cout<<PI*R*R;return1;}程序输出1

5而不是想要的75的结构。因为PI*R*R被展开为了3*a+b*a+b=15。因此C++提供了const关键字来定义常变量,用const定义的常变量具有变量量的一些属性。(有数据类型、占用内存空间、具有地址、可以用指针来指向它等),唯一和变量不同的是它的值只能在定义时指定。以后就不能通过任何形式

改变。23#include<iostream.h>#definePI3//没有类型,不占用存储单元constintR=2+3;//有类型,有存储单元intmain(){inta=2;intb=3;cout<<PI*R*R<<e

ndl;return1;}改进:24#include<iostream.h>constfloatPI=3.1415926f;intmain(){floatr;cout<<"请输入圆的半径值:(负值退出)"<<endl;cin>>r;while(r>=0){cout<<"半径为"<<r<<"的圆

的面积为:"<<PI*r*r<<","<<"周长为:"<<2*PI*r<<endl;cout<<"请输入圆的半径值:(负值退出)"<<endl;cin>>r;}return1;}例:分析如下程序的功能25const定义常量const类型常量名=表达式;或类型const常量名=表达

式;例如:constdoublepi=3.14;和doubleconstpi=3.14;两者等价!const定义数组常量:constinta[5]={1,2,3,4,5};注:const定义常量必须初始化。26常量与指针一起使用(1)指向常量的指针cons

tchar*name="chen";name[2]=‘i’;?name="stu";?(2)常指针char*constname="chen"例如:name="stu";name[1]=2;27常量与指针一起使用(3)指向常量的常指针

注:const定义一个整型常量,关键字int可以省略。constchar*constname=”chen”;name[2]=‘i’;?name=”stu”;?28区分C语言中的#define与C++中的const的不同1.由#define所定义的符号名为全局性常量,因而在整个程序中

应保持符号名的唯一性;2.const可以说明一个局部或全局性同名常量(据此可以改变const符号名之值)。3.另外在语法方面,#define为编译预处理命令,而const为定义符,语句以“;”结束。#defineMin1constintMax=1

00;voidmain(void){#defineMin2//错误,不能再定义同名常量constintMax=200;//可以再定义同名局部常量}29(4)函数形式上的转换任何系统定义的基本数据类型或用户自定义的数据类型的名

字,都可作为函数使用,从而把变量(常量)从一种数据类型转换到另一种数据类型。例如:inti=20;floatx;x=int(i);(在C语言中则错误)<30C语言要求如果函数调用在函数定义之前,则应在函数调用之前对所调用的函数进行函数声明

,但如果函数的返回值为整型,也可以不进行声明。如下例所示:#include<stdio.h>intmax(inta,intb);//函数声明voidmain(){inta=max(2,3);printf("%d",a);}intmax(inta,in

tb){if(a>=b)returna;elsereturnb;}intmax(inta,intb);就是对后面max函数的声明。由于max函数的返回值为整型所以这里的声明也可以不要。但如果max的返回值不是整型,这必须对其进行声明声明可以采用以下几种形式:intmax(inta,in

tb);//原型声明intmax();//无参声明max();//无参无返回值声明5.函数31(1)C++中的函数声明在C++如果函数调用在函数定义之前。则必须在调用之前对其进行的函数声明(返回值为int的函数也必须声明)。而且必须采用函数原型声明的形式。#include<iostr

eam.h>intmax(inta,intb);intmain(){inta=max(2,3);cout<<a<<endl;}intmax(inta,intb){if(a>=b)returna;elsereturnb;}C++中函

数声明必须采用函数原型的形式:返回值函数名(形参表);但在C++中函数的声明可以只有形参类型,而没有形参。如左边的例子中也可将函数申明写为:intmax(intint);要区分函数的定义、声明和调用以及它们的作用。32(2)C++中函数的重载函数重载:C++中允许在同一作用域中

用同一函数名定义多个函数(C语言中不可以)。这些函数的参数个数和参数类型不同。例1:跟据参数类型的不同进行重载#include<iostream.h>intmax(inta,intb){if(a>=b)returna;el

sereturnb;}floatmax(floata,floatb){if(a>=b)returna;elsereturnb;}intmain(){intia,ib;floatfa,fb;cin>>ia>>ib;cout<<max(ia,ib)<<endl;cin>>fa>>fb;cout<

<max(fa,fb)<<endl;}33例2:跟据参数个数的不同进行重载#include<iostream>usingnamespacestd;intmax(inta,intb){if(a>=b)retu

rna;elsereturnb;}intmax(inta,intb,intc){if(b>a)a=b;if(c>a)a=c;returna;}intmain(){intia,ib,ic;cin>>ia>>ib>>ic;cout<<max(ia,ib)<<endl;cout<<max(ia,ib,

ic)<<endl;}由以上两个例子的分析可以得出:对重载的函数进行调用时,主要根据函数参数类型和个数的不同来确定具体应该调用那一个函数。重载的函数能否仅仅只有返回值不同而形参完全相同?——调用重载函数时,函数返回值类型不在参数匹配检查之

列34(3)默认参数的函数C语言,函数调用时传给函数的实参个数必须与形参的个数相同,但C++可以让形参带有默认的值,从而可以让传递给函数的形参个数少于实参的个数。称为默认参数。这种机制有时候给我们带来很大

的方便。尤其是在面向对象编程时类的构造函数。#include<iostream.h>voidGetDate(intday,intmonth=3,intyear=2011){cout<<year<<"/"<<month<<"/"<<da

y<<endl;}intmain(){GetDate(20);GetDate(20,5);GetDate(20,5,2012);return1;}程序输出:2011/3/202011/5/202012/5/2035实参与形参的结

合是以从左到右的顺序进行的,第一个实参的值必须传递给第一个形参,第二个实参必然与第二个形参相结合。所以带函数的默认参数必须按从右到左的顺序进行默认。例如如下的函数默认参数是错误的。Fun(inta,intb=2,intc,intd=3);//错误默认参数的次序由以上的讨

论我们可以发现,在有默认参数的函数中,实参的个数可以少于形参的个数,但实参的个数不能少于形参中没有默认的参数的个数。带默认值的函数的功能可以由函数的重载来实现!36使用带默认参数的函数时应注意的问题(1)如果函数的定义在函数的调用之前,则应在函数的定义中给出形参的默认值。如果函数的定义在函数的调

用之后,则应在函数声明中给出参数的默认值,而在函数的定义中可以给出也可以不给出(视编译器而定,例如VC6.0中则只能在函数声明中给出,而在函数定义中不能给出默认参数)。为了避免混淆,我们最好只在函数声明中给出默认参数。(2)函数

名重载时最好不要用缺省参数,否则会引起二义性。例如:GetDate(intday,intmonth=4,intyear=2008);GetDate(intday);则如果有一个函数调用GetDate(20),系统无法判断应该调用哪一个函数(编译报错)。但如果第二个函数改为

:GetDate(intdat,intmonth,intyear,inthour);则不会出现以上混淆。37(4)内联函数(内置函数)对函数的调用需要一定的时间和空间开销,对于有些需要频繁调用的函数这种开销会累积起来。C++对此提供了一种解决方法——内联函数。内

联函数:在编译时将被调函数的代码嵌入到主调函数中。这种嵌入到主调函数中的函数称为内联函数。定义内联函数只需在函数定义的前面加上关键字inline.#include<iostream>usingnamespacestd;inlineintmax

(inta,intb);voidmain(){inta=max(2,3);cout<<a<<endl;}inlineintmax(inta,intb){if(a>=b)returna;elsereturnb;}38使用内联

函数应注意:内联函数必须在函数第一次出现时由inline指定;内联函数代码不宜太大,原则上适宜1-5行代码的小函数;不能含有复杂的分支和循环等语句。递归调用函数不能定义为内联函数。<39//分配一个堆区动态数组int

*p;inti;voidf(){cin>>i;p=(int*)malloc(sizeof(int)*i);}voidmain(){f();for(intj=0;j<i;j++){p[j]=j*10;cout<<p[j]<<

endl;}free(p);}6.动态分配/撤销内存的运算符new和deleteC语言中动态内存的分配与使用(堆区)//分配单个堆区变量#include<iostream.h>#include<malloc.h>voidmain

(){int*p;p=(int*)malloc(sizeof(int));*p=4;cout<<*p<<endl;free(p);}40动态分配/撤销内存的运算符new和deleteC语言中使用库函数malloc和free,进行内存分配和撤销,malloc只能由用户给出大小来分

配内存而不能自己确定数据类型,所以不适合面向对象自定义类型,C++提供了new和delete运算符来对内存进行动态分配和撤销(任兼容C语言的malloc和free函数)。new和delete的用法:#include<

iostream>usingnamespacestd;voidmain(){int*p;p=newint;*p=4;cout<<*p<<endl;deletep;}int*p;inti;voidf(){cin>>i;p=newint[i];}voidmain(){f(

);for(intj=0;j<i;j++){p[j]=j*10;cout<<p[j]<<endl;}delete[]p;}<417.引用类型引用:就是给变量起一个别名,别名的定义,同一实体,两个不同的名称。C++中的引用:同一内存单元两种不同的变量名。通过引用,可以实现在

不同的作用域内访问同一内存单元。42voidmain(){intx=1;fun(x);}voidfun(int&a){a=3;}您知道x与a是什么关系吗?43引用定义的语法类型定义符&变量名=原变量名;inta=3;int&ra=a;(声名ra为a的引用,ra就是a,a

就是ra.改变了ra就改变了a,改变了a也就改变了ra);即ra与a为同一个变量,但在不同的应用场合下(作用域内)以不同的变量名出现。44必须定义的同时使之初始化。引用并不另开辟内存空间。声明了一个变量的引用后,就不能在将其改为别的变量的引用。

如下程序。#include<iostream>usingnamespacestd;intmain(){inta=2,b=3;int&ra=a;ra=b;//?b=6;cout<<"a="<<a<<endl<<"b="<<b<<endl<<"ra="<<ra<<endl;}声明对一

个一般变量的引用45引用实际上是一隐指针,是对变量的间接引用,但不必加运算符“*“。引用不同于其他变量。不能定义引用数组;如:int&x[10]错误。不能建立指向引用的指针;如:int&*p错误。

不能建立引用的引用;如:int&&x;错误。inti;int&j=i;int*p=&j;?46为什么要提供引用操作符C++中的引用主要是用来解决函数调用中形参为指针型的参数时其函数体时的不安全性(易出错),使得操作更加简单、安全。例如:47i

ntadd(int&X,int&Y){X=X+Y;returnX;}voidmain(){inta=1,b=2;add(a,b);}intadd(int*X,int*Y){*X=*X+*Y;return*X;}voidmain

(){inta=1,b=2;add(&a,&b);}改进为48引用调用的优点通过引用调用可以提高调用速度,因为只需要传送地址而不需要直接将大量数据拷贝,因而特别适用于形参为大量数据的应用场合。structData{inta

[1000];}AData;voidfun(structDataX){}structData{inta[1000];}AData;voidfun(structData&X){}改进为您知道为什么要这样做呢?49正确区分传值调用与传地址调用C语言中,函数参数传递有两种方式:变量名作实参和

变量地址作实参。C++中有扩充了一种变量引用作实参。下面分别回顾一下:(1)变量名作实参变量名作实参就是直接将变量或变量的值传递给函数的形参。这种方式在函数栈中为形参分配空间。并将实参的值复制到该空间中,因为实参和形参在不同的空间,所以

传递是单向的。只能由实参将值复制给形参,形参的改变不影响实参的值。50例如:#include<iostream.h>voidswap(inta,intb);intmain(){inta=2,b=4;swap(a,b);cout<<

"a="<<a<<"b="<<b<<endl;return1;}voidswap(inta,intb){inttemp=a;a=b;b=temp;}程序输出:a=2b=4;可见swap函数并不能实现将实参交换

的作用。51(2)变量地址作实参变量地址作实参是将函数的参数定义为指针类型,调用函数的时候将变量的地址作为实参传递给函数。这种传值方式也是单向传递,但和变量名作实参不同的是它将实参变量的内存地址复制给形参。所以可以在函数栈中直接通过变量地址来改变实参的值。52#incl

ude<iostream>usingnamespacestd;voidswap(int*a,int*b);intmain(){inta=2,b=4;swap(&a,&b);//传递变量地址cout<<"a="<<a<<"b="<<b<<endl;retu

rn1;}voidswap(int*pa,int*b){inttemp=*pa;*pa=*pb;*pb=temp;}程序输出:a=4b=2;可见swap函数实现了将实参交换的作用。间接的实现了函数传参的双向传递。53(3)变量引用作实参变量引用作实参是将函数的参数定义为引用类型,

调用函数的时候将变量名作为实参传递给函数。这种传值方式是双向传递,实参和形参共享同一内存空间。改变了形参也就改变了实参。54#include<iostream>usingnamespacestd;voidswap(int

&a,int&b);intmain(){inta=2,b=4;swap(a,b);cout<<"a="<<a<<"b="<<b<<endl;return1;}voidswap(int&a,int&b){inttemp=a;a=b;b=temp;}程序

输出:a=4b=2;可见swap函数实现了将实参交换的作用。这种传参方式和变量名作参数的唯一不同是定义函数时将形参声名为引用类型。其余都和变量名作参数完全相同。<55区分引用在如下两种场合的差别(1)对一般的变量进行引用:如引用的变量不是用作

函数的形参或返回值,则声明时必须加以初始化以指明它的同地址变量。voidmain(void){intX=3;int&refX=X;fun(refX);cout<<X;//X的值被改变为4}voidfun(int&a){a++;//a为refX的引用}56intadd(in

t&X=1,int&Y=2){X=X+Y;returnX;}正确的参数声明错误的参数声明(2)函数的形参为引用:如引用的变量用作函数的形参或返回值,则说明时不要加以初始化以指明它的同地址变量,此时形参为实参的引用。intadd(in

t&X,int&Y){X=X+Y;returnX;}57函数形参定义为引用参数时的调用要求intadd(int&a,int&b){returna+b;}voidmain(){intX=1,Y=2;add(X,Y);//调用正确add(1,

2);}//调用错误}您知道为什么错误吗?调用时实参不能为常量而必须为赋已知值的变量。因为编译器无法为常量(无内存地址)建立内存地址,从而无法产生引用。同时在函数调用时系统将实参地址拷贝到形参,从而使形参即为实参,但在函数体内采用形参名来访问它。58函数形参为引用参数时的编程效果#

include"iostream.h"voidIncValue(int&X);voidmain(){intA=1;IncValue(A);cout<<"TheValueofAIs:"<<A<<endl;}voidIncValue

(int&X){X=X+1;//表面上为改变X的值,其实是改变//了main()内的A的值}?其一能在一个函数体内访问或修改另一个函数体内定义的变量的值59其二是能使某一函数间接实现“多个返回值”(因为在正常情况下,函数只能实现返回一个值)#inc

lude<iostream.h>voidCalculate(intR,float&Len,float&Area);voidmain(){intR=10;floatLength,Area;//定义时未赋值Calcu

late(R,Length,Area);cout<<"CircleLength="<<Length;//经调用后它们被赋值cout<<"CircleArea="<<Area;}voidCalculate(intR,float&Len,fl

oat&Area){Area=3.1415*R*R;//Area引用到AreaLen=2*3.1415*R;//Len引用到Length}60函数的返回值也可以声明为引用#include"iostream.h"int&fun(intNum,intarray[]

)//函数的返回值声明为引用{int&ref=array[Num];//获取对数组中的指定元素值的引用returnref;}voidmain(){intA[5]={1,2,3,4,5};//A[2]的值为3fun(2,A)=55

;//将A[2]的值改变为55cout<<fun(2,A);//显示A[2]的值为55}您知道为什么值为55吗?C++中不仅函数的形参可以定义为引用,而且函数的返回值也可以声明为引用,这可以使函数调用的表达式用于左值。61本章小结行注释输入输出数据类型:重点学会stri

ng类型的使用变量:重点掌握命名空间与作用域函数:函数原型、重载、缺省参数、内联函数new与delete运算符引用类型:扩展视野,试着掌握它,会带来事半功倍的效果62本章课外作业1.15-1.18

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?