您好,欢迎访问三七文档
C++知识点汇总1第一章★内联函数:程序调用这些成员函数时,并不是真正地执行函数调用过程(如保留返回地址等处理),而是把函数代码嵌入程序的调入点。★C++要求对一般的内置函数要用关键字inline声明,但对类内定义的成员函数,可以省略inline。★内联函数需要注意的是:(1)在C++中,除具有循环语句、Switch语句的函数不能说明为内联函数外,其他函数都可以说明为内联函数。(2)内联函数必须在程序中第一次调用此函数的语句出现之前被编译器看见。(3)如果成员函数不在类体内定义,而在类外定义,系统并不把它默认为内联函数,调用这些成员函数的过程和调用一般函数的过程是相同的。(4)使用小的内联函数在程序代码速度和大小可以取得折衷。内联函数:#includeiostream.hinlineintisnumber(charc){return(c='0'&&c='9')?1:0;}voidmain(){charc;coutenteracharacter:;cinc;if(isnumber(c))coutYouenteredadigit;elsecoutYouenteredanot-digit;}例:classStudent{public:voiddisplay()//也可以写成inlinevoiddisplay(){cout“num:”numendl;cout“name:”nameendl;cout“sex:”sexendl;}private:intnum;stringname;charsex;};C++知识点汇总2★引用:(1)引用的作用是为变量其一个别名。(2)在声明一个引用时,必须同时使之初始化,即声明它代表哪一个变量。例1:int&b=a1;★使用引用注意事项:(1)使用引用作为参数完成时,完成地址传递方式,即传送的是实参变量的地址,使实参变量与形参变量具有同一个地址。(2)返回引用的函数:为了将该函数用在赋值运算符的左边。数据类型&函数名(参数列表)例:index(3)=16;★输入与输出的操作:Cout语句的一般格式为:Cout表达式1表达式2……表达式n;Cin语句的一般格式为:Cin变量1变量2……变量n;★注意:(1)不能用一个插入运算符””插入多个输出项例1:couta,b,c;/*错误,不能一次插入多项*/★一个cin语句可以分写成若干行。例:cinabcd;cinabcd;输入变量值时可以用空格分隔,也可以用回车分隔。★动态分配和撤销内存的运算(1)分配内存:new运算符指针名=new结构名;例如:classStudent{public:inlinevoiddisplay();//声明此成员函数为内联函数private:intnum;stringname;charsex;};inlinevoidStudent::display(){cout“num:”numendl;cout“name:”nameendl;cout“sex:”sexendl;}C++知识点汇总3(2)删除内容:delete运算符delete指针名;#includeiostreamusingnamespacestd;voidmain(){float*p,min,sum=0;p=newfloat[15];if(!p){cout内存分配错误!endl;exit(1);}coutinput15number:endl;for(inti=0;i15;i++)cin*(p+i);min=*(p+0);for(i=0;i15;i++){sum=sum+*(p+i);if(min*(p+i))min=*(p+i);}coutsum=sumendl;coutmin=minendl;deletep;}C++知识点汇总4#includeiostream.hvoidmain(){intn,k=1;cout请输入n值:n;cinn;if(n0)cout超出范围!endl;else{for(intj=1;j=n;j++)k=k*j;cout输出n的阶乘为:kendl;}}#includeiostreamusingnamespacestd;voidmain(){int*p=newint[20];intm,n;m=n=0;if(!p){cout内存分配错误!endl;exit(1);}cout输入20个数:endl;for(inti=0;i20;i++){cin*(p+i);if(*(p+i)0)m=m+1;if(*(p+i)0)n=n+1;}cout正数m的个数为:m,负数n的个数为:nendl;}C++知识点汇总5★编译指令功能主要有4中。1、宏定义※一般形式为:#define标识符字符串;#define宏名(参数表)字符串例1:#definePI3.14159例2:#defineS(a,b)a*b※带参数的宏:(1)编译程序中的实际参数代替宏中有关参数;(2)当替换正文要书写多行,除最后一行之外,每行的行尾要加上一个反斜线。#defineMAX(a,b)((a)(b)\(a):(b))(3)宏定义的替换正文可以为空。#defineREGISTERREGISTERinti;(4)与#define一起使用的还有#和##两个运算符。例1:#的引用是在宏扩展之后,将其右边的操作数变成一个串。#definestring(a)#acoutstring(programmingisfun);编译器将第二条语句处理为:cout“programmingisfun”;例2:运算符##将其两边的操作粘连成一个表示符。#defineconcate(a,b)a##bintxy=10;coutconcate(x,y);编译器将最后一条语句处理为:coutxy;2、文件包含一般形式:#include文件名或#include“文件名”例1:#include\user\prog.h注:如果在C++程序中表示上述文件名,则必须使用双反斜杠。例2:charfname[]=“\\user\\prog.h”3、条件编译进行编译时对源程序中的内容只在条件满足的情况下才编译。(1)#ifdef标识符(2)#ifndef标识符程序段1程序段1#else#else程序段2程序段2#endif#endif(3)#if表达式程序段1C++知识点汇总6#else程序段2#endif(4)、出错指令#error出错信息第二章类和对象★一、类和对象(1)类定义:类代表了某一批对象的共性和特征。(2)类和对象的关系:类是对象的抽象,而对象是类的具体实例,或者说是类的具体表现形式。(3)注意:※类是抽象的,不占内存,而对象是具体的,占用存储空间。※类是一种用户自己定义的数据类型。※类由数据成员和函数成员构成--封装思想的实现(数据封装就是使用类将数据和操作这些数据的代码连接在一起。在C++中,封装由struct、union和class等关键字提供)。★对象的基本特性:※对象之间可以相互赋值;LocationLa,Lb;La.init(5,6);Lb=La;※可使用对象数组;LocationarrLoc[3];※可使用指向对象的指针,使用取地址运算符将一个对象的地址置于该指针中;LocationPa;Location*Pb=&Pa;※对象可以用做函数的参数,这是参数传递采用传值方式。voiddisplay(Locationloc)※一个对象可以用做另一个对象的成员#includeiostream.h#defineRUNvoidmain(){intx=1,y=2,z=3;#ifdefRUNcoutx=x,y=y,z=zendl;#endifcoutx*y*z=x*y*zendl;}C++知识点汇总7★说明类的方法:(1)class类名{private:私有数据和函数public:公有数据和函数protected:保护数据和函数};★2、类声明有关事项:※访问权限:类的成员所具有的属性。private只能被类中成员函数引用,类外不能调用。public可以被本类中成员函数引用,也可以被类的作用域的其它函数引用。protected不能被类外访问,但可以被派生类的成员函数访问。※如果在类的定义中既不指定private,也不指定public,则系统就默认为私有的。※类中说明的任何成员不能使用extern、auto和register※不能在说明对象成员使用表达式进行初始化。例:classLocation{private:intX=25,Y;//错误的表达方式};★1、成员函数的性质(1)它与一般的函数的区别只是:它是属于一个类的成员,出现在类体中。(2)在使用类函数时,要注意调用它的权限。(3)一般的做法是将需要被外调用的成员函数指定为public,它们是类的对外接口。2、在类外定义成员函数(1)使用作用域运算符“::”(2)用作用域运算符来说明所声明的函数属于哪个类的。(3)类函数必须先在类体中原型声明,然后在类外定义。(4)对类体内定义的函数,默认为内联函数(函数代码嵌入程序的调入点)。※类外定义成员函数classStudent{public:voiddisplay();private:intnum;stringname;charsex;};voidStudent::display()C++知识点汇总8{cout“num:”numendl;cout“name:”nameendl;}Studentstud1,stud2;★访问对象中的成员可以有3种方法:(1)通过对象名和成员运算符访问对象中的成员;访问对象的一般形式为:对象名.成员名例:stud1.display();(2)通过指向对象的指针访问对象的成员;例:classTime{public:inthour;intminute;};Timet,*p;p=&t;coutp-hour;(3)通过对象的引用变量访问对象中的成员;例:classTime{public:inthour;intminute;};Timet1;Time&t2=t1;coutt2.hour;★类不占用内存空间,每个对象占据内存空间,它们所保存的数据不同,但操作代码均是一样的。为了节省内存,在建立对象时,只分配用于保存数据的内存,代码为每个对象共享。类中定义的代码被放在计算机内存的一个公用区中供该类的所有对象共享。C++知识点汇总9★成员函数的重载及其缺省参数※重载函数:函数的名字相同,但参数的类型确实却是不同的。※函数也可以带有缺省参数。voidvalueX(int);//带参数的重载函数intvalueX();//带有缺省参数的重载函数voidint(int=0,int=0);//带有缺省参数的函数★this指针1、用类去定义对象时,系统会为每一个对象分配存储空间。2、一般情况下,不同对象的数据存储单元中存放数据值是不同的,而不同对象的函数代码是相同的,不论调用那一个对象的函数代码,其实调用的都是同样内容的代码。3、c++编译系统为每个对象所占用存储空间只是该对象的数据部分所占用的存储空间,而不包括函数代码所占用的存储空间。voidArray_max::set_value(){inti;for(i=0;i10;i++)cinarray[i];}voidArray_max::max_value(){inti;max=array[0];for(i=1;i10;i++)if(array[i]max)max=array[i];}voidArray_max::show_value(){coutm
本文标题:C++知识点汇总
链接地址:https://www.777doc.com/doc-4207145 .html