首页 《C基础知识》PPT课件

《C基础知识》PPT课件

举报
开通vip

《C基础知识》PPT课件C++基础知识张涛08.11.10东华理工大学核工程技术学院全面支持CC++语言的产生1983加入类CC++ANSIC++1994标准化C++语言的特点面向对象,也可用于面向过程的结构化程序设计比C更完善、安全、高效面向对象的基本概念对象是用来描述客观事物的一个实体张三李四属性服务性别,年龄…说话,行走…抽象类是具有相同属性和服务的一组对象的概括具体化继承新类人说话,行走…性别,年龄…大学生性别,年龄,专业…说话,行走,学习…消息预处理命令用来定义某些编译内容要在满足一定条件下才参与编译,否则不参与编译;可使同一源...

《C基础知识》PPT课件
C++基础知识张涛08.11.10东华理工大学核工程技术学院全面支持CC++语言的产生1983加入类CC++ANSIC++1994标准化C++语言的特点面向对象,也可用于面向过程的结构化程序设计比C更完善、安全、高效面向对象的基本概念对象是用来描述客观事物的一个实体张三李四属性服务性别,年龄…说话,行走…抽象类是具有相同属性和服务的一组对象的概括具体化继承新类人说话,行走…性别,年龄…大学生性别,年龄,专业…说话,行走,学习…消息预处理命令用来定义某些编译 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 要在满足一定条件下才参与编译,否则不参与编译;可使同一源程序在不同的编译条件下产生不同的目标代码。预处理命令不是C++语言的一部分;常用的预处理命令文件包含命令宏定义命令条件编译命令停止编译命令避免重复引用某个头文件(条件编译和文件包含)//main.cpp#include"myfile1.h"#include"myfile2.h"//myfile1.h#include"myhead.h"//myfile2.h#include"myhead.h" 改进://myfile1.h#ifndefMYHEAD_H #defineMYHEAD_H #include"myhead.h" #endif //myfile2.h#ifndefMYHEAD_H #defineMYHEAD_H #include"myhead.h" #endifC++的数据类型指针一个变量的地址称为该变量的“指针”。指针是C++对内存地址的一种抽象。指针变量是一种存放内存地址的变量,在C++中指针的值就是地址。指针的一般定义形式为:数据类型*变量名其中的数据类型可以是C++中的任何一种数据类型,*是“指向”的意思。例如:inta,*p1,*p2;p1=&a;引用说明intnum=50;int&ref=num;表示放整数50的内存空间可叫num,又可叫ref引用实质上是为另一个变量建立别名。引用是一种数据形式,使用场合有引用变量、引用参数、引用函数返回值等。引用最大的作用就是作为函数的参数与返回值。引用作为函数参数,有以下好处:引用参数传递的就是参数本身,而不是实在参数的一个副本,这样减少了建立副本的消耗。引用作为参数还可以作为函数返回值的一种有效途径。可以通过将引用定义为是const引用来限制在函数中对引用所代表的实在参数做修改。引用常类型常类型:使用类型修饰符const说明的类型;常类型的变量或对象的值是不能被更新的;定义或说明常类型时必须初始化;const修饰其左边的类型;一般常量(简单类型的常量)    <类型说明符>const<常量名>或   const<类型说明符><常量名>intconstx=2; 或 constintx=2;intconsta[3]={1,2,3}; 或 constinta[3]={1,2,3};数组元素的值是常量,不能更新;常对象<类名>const<对象名>classA           intx,y;{            };public:          constAa1(3,4); A(inti,intj){x=i;y=j;}private:Aconsta1(3,4);常对象A常指针char*constptr1=strptr1;ptr1是一个常量指针;ptr1=strptr2;*ptr1="m";ptr1不可以更新ptr1所指向的变量可以更新;const的位置constchar*ptr2=strptr1;ptr2是一个指向字符串常量的指针;ptr2=strptr2;*ptr2="m";ptr2可以更新ptr2所指向的字符串不可以更新;错误正确正确错误常引用常引用所引用的对象不能被更新;const<类型说明符>&<引用名>doublex=1.2;constdouble&v=x;则:v=12.3错误。  使用常参数表明该函数不会更新某个参数所指向或所引用的对象,并使该函数具有更大的适应性;常指针。#includeconstintN=6;voidprint(constint*p,intn);voidmain(){intarray[N];for(inti=0;i>array[i];print(array,N);}voidprint(constint*p,intn){cout<<"{"<<*p;for(inti=0;i<函数名>(<参数表>)const;  const是函数类型的一个组成部分,在函数实现部分必须带有const关键字;说明:只有常成员函数才能操作常对象;成员函数与对象之间的操作关系#includeclassK{public:K(inti){k=i;}intsetk()const{returnk;}private:intk;};intadd(constK&g1,constK&g2);voidmain(){Kk1(8),k2(17);常成员函数常引用作形参ints=add(k1,k2);cout<)//函数定义头{//函数定义体说明语句;…表达式语句;…return表达式;返回值类型}在上述格式中,函数的存储类型可以缺省,但函数类型、函数名和参数表不能省略。参数表中列举函数的所有参数,函数也可以没有参数,但此时函数名后面的圆括号()仍不可少。例如:intmax(inta,intb){intt;if(a>b)t=a;elset=b;returnt;}类型就是该函数的类型,也就是该函数的返回值的类型,此类型可以是C++中除函数、数组类型之外的任何一个合法的数据类型。函数的返回值通常指明了该函数处理的结果,由函数体中的return语句给出。一个函数可以有返回值,也可以无返回值。此时需要使用保留字void作为类型名。每个函数都有类型,如果在函数定义时没有明确指定类型,则默认类型为int。函数调用的格式:在C++中,除了主函数main由系统自动调用外,其他函数都是由主函数直接或间接调用的。函数调用的语法格式为:函数名(实际参数表);实参应该与函数定义中的形参表中的形参一一对应,即个数相等、次序一致且对应参数的数据类型相同或相容。每个实参是一个表达式,并且必须有确定的值。函数调用时的参数传递参数传递称为“实虚结合”,即实参向形参传递信息,使形参具有确切地含义(即具有对应的存储空间和初值)。这种传递又分为两种不同的方式,一种是按值传递,另一种是地址传递或引用传递。1.按值传递被调用函数本身不对实参进行操作,即使形参的值在函数中发生了变化,实参的值也完全不会受到影响,仍为调用前的值。按值传递例子#include"iostream.h"voidswap(int,int);voidmain(){inta=3,b=4;cout<<"a="<   {    public:     <成员函数或数据成员的说明>    private:     <数据成员或成员函数的说明>   };   <各个成员函数的实现>访问权限类定义关键字说明部分实现部分语句结束符classTDate{public:voidSetDate(inty,intm,intd);intIsLeapYear();voidPrint();private:intyear,month,day;};voidTDate::SetDate(inty,intm,intd){year=y;month=m;day=d;}intTDate::IsLeapYear(){return(year%4==0&&year%100!=0)||(year%400==0)}voidTDate::Print(){cout<::<函数名>(<参数表>)classN;classM{ public:  …... private:  N*n;};classN{ public:  voidf(Mm);  ……};提前说明类N自身类的指针或引用,可以作该类的成员;当另一个类的对象作为该类的成员时,如果另一个类的定义在后,需要提前说明;习惯将类定义的说明部分或者整个定义部分(包含实现部分)放到一个头文件中;n是N类的对象m是M类的对象对象的定义格式<类名><对象名表>;例如: TDatedate1,date2,*Pdate,date[31];->运算符与.运算符的区别->表示指向对象的指针的成员;.表示一般对象的成员;两种等价表示<对象指针名>-><成员名>(*<对象指针名>).<成员名>1、一般对象数据成员: <对象名>.<成员名>成员函数: <对象名>.<成员名>(<参数表>).运算符:表示对象的成员例如:   date1.year,date1.month,date1.day;   date1.SetDate(1998,4,9);2、指针对象数据成员: <对象名>-><成员名>成员函数: <对象名>-><成员名>(<参数表>)->运算符:表示对象的成员例如:   Pdate->year,Pdate->SetDate(1998,4,9);#include#include"tdate.h"voidmain(){TDatedate1,date2;date1.SetDate(1996,5,4);date2.SetDate(1998,4,9);intleap=date1.IsLeapYear();cout<::<类名>(const<类名>&<引用名>)3、缺省拷贝初始化构造函数  如果类中没有说明拷贝初始化构造函数,则编译系统自动生成一个具有上述形式的缺省拷贝初始化构造函数,作为该类的公有成员;//tpoint.hclassTPoint{public:{TPoint(intx,inty){X=x;Y=y;}TPoint(TPoint&p);~TPoint(){cout<<"Destructorcalled."<#include"tpoint1.h"TPointf(TPointQ);voidmain(){TPointM(20,35),P(0,0);TPointN(M);M为已知对象,N是正在创建的对象P=f(N);cout<<"P="<&<类名>::operator=(const<类名>&<引用名>)B=A;等价于     B.operator=(A);每个类都有一个赋值操作;#includeclassLocation{public:{Location(intxx=0,intyy=0){X=xx;Y=yy;}Location(Location&p){X=p.X;Y=p.y;}Location&operator=(Location&p);intGetX(){returnX;}intGetY(){returnY;}private:intX,Y;};分析下列程序的输出结果。赋值函数Location&Location::operator=(Location&p){X=p.X;Y=p.Y;cout<<"Assignmentoperatorcalled."<:<继承方式><基类名> {  <派生类新定义成员> };2、多继承 class<派生类名>:<继承方式1><基类名1>,        <继承方式2><基类名2>... {  <派生类新定义成员> };继承方式public:公有继承;private:私有继承;protected:保护继承;作用:控制基类中声明的成员在多大的范围内能被派生类的用户访问;私有成员公有成员保护成员私有成员公有成员保护成员基类部分新定义部分派生类派生类成员派生类的构成
本文档为【《C基础知识》PPT课件】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
机构认证用户
希望图文
公司秉着用户至上的原则服务好每一位客户,专注课件、范文、教案设计制作
格式:ppt
大小:1MB
软件:PowerPoint
页数:60
分类:其他高等教育
上传时间:2022-05-05
浏览量:1