类-重庆工商大学

类-重庆工商大学

ID:39619921

大小:322.00 KB

页数:51页

时间:2019-07-07

类-重庆工商大学_第1页
类-重庆工商大学_第2页
类-重庆工商大学_第3页
类-重庆工商大学_第4页
类-重庆工商大学_第5页
资源描述:

《类-重庆工商大学》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第三讲类类的引入类的具体语法形式构造函数和析构函数this指针、静态成员和常量成员友元和嵌套类对象数组和指针间的关系C是C++的子集,C++具备了封装、继承和多态性等主要面向对象特征。当退化为C时,处理要求高效率的地方和C完全相同;强调面向对象特性时,一般比C慢百分之十几。C++更好的C:C++简洁的单行注释;严格的参数检查;用引用传递参数;灵活的局部变量说明(C是在任何执行语句前);内联函数(凡是有循环语句或switch语句的函数不能成为内联函数);常量修饰,包括几种常量指针;空间申请和释放;数据的抽象和封装:传统的程序设计语言强调“功能”(函数、操作),数据的功能不如

2、功能大,只提供几种内部数据类型;C++提升了数据的重要性,建立新的数据类型和表示出这些数据类型的对象之间的交互性是重要的。2021/9/821类的引入类是结构的扩展,可用来对外部函数访问的限制。stack.hvoidpush(char);charpop();stack.cpp#include"stack.h"staticcharv[100];staticchar*p=v;voidpush(charc){//……}charpop(){//……}局部变量隐藏在函数体内;通过函数的参数传递共享变量。使用静态全局变量,局限于文件。数据量大时,效率低使用全局变量,程序中每个函数都可

3、以访问。查错困难2021/9/83other.cppincludeinclude"stack.h"voidsome_function(){push('c');charc=pop();}poppushvp函数函数公共接口私有数据外部函数通过公共接口访问数据,而不必关心数据的存储形式。但存放的是具体的数据,而不是数据的描述。使用多个堆栈要重新定义结构是对数据描述,可创建多个对象。2021/9/84堆栈的结构版本:structstack{charv[100];char*p;voidpush(charc){//……}charpop(){//……}};C++

4、引入类解决上述问题(限制全局变量使用和构成新类型)堆栈的使用:stacksta1,sta2;sta1.p=sta1.v;sta2.p=sta2.v;sta1.push('c');外部函数可直接访问结构的成员。破坏了数据的封装特性2021/9/852类定义与结构不同之处是成员访问说明符。除该类的成员函数外,谁都不得访问程序中所有函数都可访问可以省去类的实例也就是所谓的对象:stacksta1;stack*pstack=newstack;堆栈的类版本:classstack{private:charv[100];char*p;public:voidpush(charc){//…

5、…}charpop(){//……}};2021/9/86★可用一特殊成员函数(构造函数)初始化,每当创建对象时系统自动调用此函数。名字与类相同,无返回值,公有成员函数类的定义,初始化无效类的使用:voidmain(){stacksta;sta.p=sta.v;  //(×)sta.push('a');charch=sta.pop();}3构造函数和析构函数classCTest{intn=0;intrint=n;//….}一个类的普通数据成员,在不同的对象中占用不同的空间;但成员函数不管在哪个实例中调用,都占用同一空间。2021/9/87classstack{private

6、:charv[100];char*p;public:stack(){p=v;}voidpush(charc);voidpop();};类外定义函数,要用::无参,缺省构造函数类的使用:voidmain(){//……stacksta;sta.push('a');charch=sta.pop();}1、为sta分配空间2、调用构造函数2021/9/88★构造函数可带参数classstack{private:char*v;char*p;intsize;public:stack(){p=v;}stack(intsz){v=newchar[size=sz];p=v;}//……};还

7、可以给一缺省值v数组是动态分配的,出作用域并不自动释放。析构函数类名前加~,无返回值,无参数(不能重载)例如:~stack(){delete[]v;}构造函数可以重载。例如:既有缺省构造函数,同时又有一个带参构造函数。构造函数可有多个,这时要注意二义性。2021/9/89★拷贝构造函数拷贝构造函数首先是构造函数,创建对象时被调用,其功能是将一个已存在的对象的数据成员拷贝给正在创建的的另一个同类对象。拷贝构造函数具有以下特点:具有构造函数的所有特性。该函数只有一个参数,并且是对对象的引用。对每个类,编译系统会自动生成一个拷贝构造

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。