欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第1章C++面向对象.ppt

    • 资源ID:82770753       资源大小:79KB        全文页数:41页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第1章C++面向对象.ppt

    第1章C+面向对象程序设计要点第第1章章C+面向对象程序设计要点面向对象程序设计要点1.1函数和函数参数函数和函数参数1.2输入输出输入输出1.3类类1.4抽象类型和模板抽象类型和模板1.5动态申请和动态释放内存动态申请和动态释放内存第1章C+面向对象程序设计要点1.1函数和函数参数函数和函数参数1.1.1函数类型C+中有两种类型函数:常规函数和成员函数。常规函数用于完成一个特定的功能,成员函数用于类方法的定义。无论是常规函数还是成员函数,其定义都包括四个部分:函数名、形式参数表、返回类型和函数体。第1章C+面向对象程序设计要点函数的使用者通过函数名来调用函数,调用过程是把实际参数表传送给形式参数表作为函数的数据来源,然后执行函数体中的语句实现该函数的功能,最后得到的返回值由函数名带回函数的调用者。成员函数是用于类方法定义的,因此,只有该类的对象才能调用其成员函数。第1章C+面向对象程序设计要点1.1.2函数名重载C+允许函数名重载,即允许若干个相同的函数名能在相同作用域内使用。编译系统根据函数引用的参数类型和参数个数判明函数的使用。例:函数名重载includeintmax(inta,intb)if(a=b)returna;elsereturnb;第1章C+面向对象程序设计要点Floatmax(floata,floatb,floatc)if(a=b&a=c)returna;elseif(ac)returnb;elsereturnc;voidmain()printf(max(2,3)=%dn,max(2,3);printf(max(2.3,5.6,3.1)=%fn,max(2.3,5.6,3.1);第1章C+面向对象程序设计要点1.1.3函数参数C+中函数(包括常规函数和成员函数)参数有四种方式:值参数、常值参数、引用参数和常值引用参数等方式。但常值参数方式因无必要,一般不用。要注意的是,不同方式的参数(不同方式的返回值也类同)在函数的传递调用中系统将视为不同的数据类型。第1章C+面向对象程序设计要点如定义有函数f1(intx),在函数f1()中又要调用函数f2(),如果函数f2()的定义是f2(constintx),系统将视int和constint为不同的数据类型,从而告知用户数据类型不匹配。int和int&的情况也一样。例:函数参数的值参数、引用参数和常值引用参数三种方式。intExample1(inta,intb,intc)/值参数方式intx,y,z;x=a;y=b;z=c;第1章C+面向对象程序设计要点a=2*a;b=2*b;c=2*c;/函数返回后对应实际参数的值不变return(x+y+z)/3;intExample2(int&a,int&b,int&c)/引用参数方式intx,y,z;x=a;y=b;z=c;a=2*a;b=2*b;c=2*c;/函数返回后对应实际参数的值改变return(x+y+z)/3;第1章C+面向对象程序设计要点intExample3(constint&a,constint&b,constint&c)/常值引用参数方式return(a+b+c)/3;/不允许改变常值引用参数a,b,c的值第1章C+面向对象程序设计要点引用参数的方法是在类型名后加符号&,常值引用参数的方法是在引用参数方法的基础上再在函数定义行的最前边加保留字const。对于Example1的值参数方式,在运行时,对应的实际参数的值拷贝给形式参数,当函数终止时,形式参数的值不拷贝回实际参数。因此,值参数方式的函数调用不会改变对应形式参数的实际参数的值。举例第1章C+面向对象程序设计要点1.1.4成员函数返回值(与常规函数的返回值有区别)和函数参数的方式类同,成员函数返回值也有值方式、常值方式、引用方式和常值引用方式等四种方式。当成员函数的返回值为值方式时,允许改变该对象的私有成员数据。注意,成员函数的返回值为无const标识符的任何数据类型(包括void类型)时即为值方式。第1章C+面向对象程序设计要点例成员函数返回值的值方式和常值方式includeclassTemperatureprivate:floathighTemp;/最高温度floatlowTemp;/最低温度第1章C+面向对象程序设计要点public:Temperature(floath,floatl)highTemp=h;lowTemp=l;voidUpdateTemp(floattemp);/成员函数返回值为值方式floatGetHighTemp(void)const;/成员函数返回值为常值方式floatGetLowTemp(void)const;/成员函数返回值为常值方式;voidTemperature:UpdateTemp(floattemp)第1章C+面向对象程序设计要点if(temphighTemp)highTemp=temp;/允许更改私有数据if(temp,cout对象的屏幕输出操作符为。第1章C+面向对象程序设计要点#includevoidmain(void)charc;intn;coutn;coutn=nendl;第1章C+面向对象程序设计要点1.2.2文件输入输出调用打开文件函数时,打开文件函数的参数包括文件名和数据流动的方向,打开文件函数返回文件的开始地址。系统在存储文件时,在其末尾添加有文件结束标记,这样打开文件函数就具体地指定了一个文件在内存中的起始位置、结束位置和数据流动的方向。fstream.h流类中定义了文件输入类和文件输出类。文件输入类的类名为ifstream,文件输出类的类名为ofstream。第1章C+面向对象程序设计要点1.3类类当开发的应用程序的数据类型不是int、float、char等系统支持的基本数据类型时,开发者就需定义自己的数据类型。C+中定义自己的数据类型的面向对象方法是使用类。类是C+支持面向对象程序设计的基础。C+中定义类使用标识符class,类定义包括类中数据的定义和成员函数的定义。第1章C+面向对象程序设计要点例 设计一个人民币类,其方法包括设置、加(+)、加等于(+=),以及输出流操作,并用一个主函数验证。includeincludeenumsignminus,plus;/正负数的符号标识/类Money定义部分classMoney/类Money定义第1章C+面向对象程序设计要点friendostream&operator99)第1章C+面向对象程序设计要点cerr分必须小于等于9999)cerr分必须小于等于99endl;第1章C+面向对象程序设计要点exit(1);amount=d*100+c;if(s=minus)amount=-amount;returntrue;MoneyMoney:operator+(constMoney&x)const/操作符+重载Moneyy;y.amount=amount+x.amount;returny;第1章C+面向对象程序设计要点ostream&operator(ostream&out,constMoney&x)/流类的操作符重载。前边不再需标识符friendMoneytemp=x;/注意临时对象temp绝对不能定义为引用型if(x.amount0)out-;temp=-temp;/temp为x的绝对值longd=temp/100;/d为amount的元值第1章C+面向对象程序设计要点out¥d.;intc=temp-d*100;/c为amount的分值if(c10)out0;/分值小于10时在十位上添0outc;returnout;/主函数部分voidmain(void)Moneyg,h(plus,3,30),hg;第1章C+面向对象程序设计要点g.Set(minus,2,25);hg=h+g;/h和g的值均不变g+=h;/g的值被改变couth+g=hgendl;coutg=gendl;第1章C+面向对象程序设计要点1.3.1类的存取权限类的数据和成员函数的存取权限分为三种:私有(private)、公有(public)和保护(protected)。在private域中,声明的数据和成员函数构成类的私有部分,私有部分中的数据和成员函数只能由该类对象的成员函数,以及被声明为友元的函数或声明为友元的类的对象的成员函数访问。第1章C+面向对象程序设计要点在public域中,一般仅声明类的成员函数(有些情况下,也在此域中声明类的数据)。在public域中,声明的类的数据和成员函数构成类的公有部分;公有部分中的数据和成员函数既允许该类对象的成员函数访问,也允许程序中其他函数或其他类的对象的成员函数访问。因此,一个类的公有部分就构成了这个类的操作界面。外部函数和别的对象通过操作界面对类中的对象进行操作。在protected域中声明的数据和成员函数也是构成类的私有部分,但这些成员允许在该类的的派生类中访问。第1章C+面向对象程序设计要点1.3.2构造函数和析构函数构造函数是一种特殊的成员函数。构造函数是用来在内存中建立类的具体对象(即在内存中为该对象分配适当的空间)并对其进行初始化赋值的成员函数。构造函数的名字必须和类的名字相同,构造函数没有返回值。构造函数允许参数有默认值,当构造函数有默认值时,若定义该类的对象时没有给出初始化值则按默认值处理。例中对象h有初始化值(plus,3,30),对象g和hg没有初始化值,因此对象g和hg的初始化值为默认值(plus,0,0)。一个类允许有多个构造函数。当一个类有多个构造函数时,系统将根据定义对象时的参数类型和参数个数,选择恰当的构造函数来建立对象和对该对象进行初始化。第1章C+面向对象程序设计要点析构函数是一种当对象被取消时才被自动调用的特殊函数。当一个对象被取消时,析构函数提供了自动释放由构造函数在内存中建立的该类对象的内存区。析构函数的名字是在类的名字前面加上前缀“”,析构函数没有返回值。由于在一般情况下建立的对象当被取消时,系统都能自动识别出所占用的相应的内存区,所以一般情况下析构函数的函数体为空。函数体为空的析构函数可省略。但当对象被取消时系统不能自动识别出所占用的内存区的类,析构函数的函数体就不能为空,此时析构函数就要负责释放对象所占用的内存区。每个类只能有一个析构函数。第1章C+面向对象程序设计要点另外有关类的基本要素有操作符重载、友元、分辨符、内联函数等等第1章C+面向对象程序设计要点1.3.11结构体C+语言是从C语言发展而来的,面向对象程序设计中的类是结构化程序设计中结构体的进一步发展,为了使习惯于使用C语言结构体的编程人员能习惯使用C+语言中的类,C+语言中定义结构体和类概念基本相同,惟一不同之处是结构体中都是共有数据成员和共有成员函数,没有私有数据成员和私有成员函数。第1章C+面向对象程序设计要点1.3.12对象具有类类型的变量称作对象,或者说,对象是类的实例化。例g,hg就是类Parent的对象。从上述的C+语言对结构体的定义,还可以说,具有类类型或结构体类型的变量称作对象,或者说,对象是类或结构体的实例化。第1章C+面向对象程序设计要点1.4抽象类型和模板抽象类型和模板在软件开发和维护过程中需要花费大量的人力和时间,如果能够重复利用以前开发完成的数据结构和算法模块,把它们有选择地组装在新的软件中,将可以大大减少需花费的人力和时间,这就是软件的复用问题。在C+中,实现软件复用的方法主要有抽象类型法和模板法。第1章C+面向对象程序设计要点1.4.1抽象类型抽象类型方法是类的定义中数据成员的类型使用抽象类型,当应用程序具体包含该类头文件前再对该抽象类型进行具体定义。如例13中的类Temperature可定义如下:classTemperatureprivate:elemtypehighTempelemtypelowTemp;public:第1章C+面向对象程序设计要点Temperature(floath,floatl)highTemp=h;lowTemp=l;voidUpdateTemp(floattemp);elemtypeGetHighTemp(void)const;elemtypeGetLowTemp(void)const;假设上述类Temperature的定义和实现放在文件Temperature.h中,当应用程序需要的精度为float时,则主程序包含该文件的方式为:第1章C+面向对象程序设计要点typedeffloatelemtype;includeTemperature.h当应用程序需要的精度为double时,则主程序包含该文件的方式为:typedefdoubleelemtype;includeTemperature.h第1章C+面向对象程序设计要点1.4.2模板上述类Temperature定义的模板定义方法是:templateClassTemperatureprivate:elemtypehighTemp;elemtypelowTemp;public:Temperature(floath,floatl)highTemp=h;lowTemp=l;第1章C+面向对象程序设计要点VoidUpdateTemp(floattemp);ElemtypeGetHighTemp(void)const;ElemtypeGetLowTemp(void)const;在调用程序中定义具体float类型或double类型对象的方法是:Temperaturetemp;或Temperaturetemp;

    注意事项

    本文(第1章C++面向对象.ppt)为本站会员(s****8)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开