《C的类和对象》PPT课件

《C的类和对象》PPT课件

ID:46949422

大小:211.00 KB

页数:31页

时间:2019-12-01

《C的类和对象》PPT课件_第1页
《C的类和对象》PPT课件_第2页
《C的类和对象》PPT课件_第3页
《C的类和对象》PPT课件_第4页
《C的类和对象》PPT课件_第5页
资源描述:

《《C的类和对象》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第6章C++的类和对象本章要点:类和类对象的定义静态类成员的定义和应用const类对象及其成员的定义和应用指向类成员指针的定义和应用构造函数和析构函数的定义和调用三种特殊的类:嵌套类、局部类和联合类类域的基本概念6.1循序渐进学理论6.1.1类的定义1.类的定义方法类是对客观事物的一种高度抽象,是具有一组相同属性和操作的集合,因此它包括两个部分的内容:数据成员和成员函数,其定义格式如下:class<类名>{public://……private://……protected://……}2.数据成员数据成员的声明方式和变量的声明方式基本相同,格

2、式如下:<数据类型><数据成员名>;需要注意的是,在声明一个数据成员时:(1)不能采用auto、extern和register修饰符进行修饰;(2)只有采用static修饰符声明的静态数据成员才可以被显式初始化,它具有特殊的属性。非静态数据成员只能通过构造函数才能够被初始化,若试图在类体中直接初始化非静态数据成员,会导致编译错误。3.成员函数成员函数在类体中的声明方式和普通函数的声明方式相同,其格式如下:<返回类型><成员函数名>([<参数列表>]){<函数体>}成员函数可以在类体内被定义,也可以在类体外被定义。如果在类体外定义成员函数,必须先用域运算

3、符“::”指出该成员函数所属的类,其定义格式如下:<返回类型><类名>::<函数名>(<参数列表>){<函数体>}4.访问限制C++语言通过访问限定符public、private和protected将类成员分成三类:公有成员、私有成员和保护成员。公有成员可以被该类的成员函数访问,也可以在程序的任意地方被任意访问。私有成员只能被该类的成员函数或者该类的友元函数访问。友元是为了增加程序的灵活性而引入的概念,允许程序中的某些函数访问类中的私有成员。保护成员对于派生类来说,就像是公有成员,可以被访问,对于程序的其他部分来说,就象是私有成员,不允许被访问。6.1

4、.2类对象的定义1.类对象的定义类可以被看作是一种自定义类型,用来定义具体的对象,格式如下:<类名><对象名>;例如,可以用学生类Student去定义对象张三:StudentzhangShan;//定义1个类对象2.动态类对象的创建可以用new表达式创建动态的类对象,它的寿命期由程序员掌控,定义格式如下:new<类名>[(<初始值>)];其中初始值是可选项,若给出了初始值,系统会自动调用相应的构造函数初始化新创建的类对象,否则调用缺省构造函数进行初始化。采用delete表达式释放动态类对象的格式如下:delete<指针名>;释放动态类对象数组的格式如下

5、:delete[]<指针名>;3.类对象成员的访问一般来说,在程序中必须使用点成员运算符“.”或者箭头成员运算符“->”,才能访问类对象的成员。其中,“.”用于类对象或引用,“->”用于指向类对象的指针。假设有类对象定义如下:StudentHuangShan;Student*ZhengXiang;按如下方式调用类对象的成员函数average():cout<average();//正确!6.1.3类对象的构造和析构1.构造函数的概念构造函数是一种特殊的类成员函数,其函

6、数名和类名相同。在定义类对象时,系统会自动调用该类的构造函数,完成类对象中数据成员的初始化,其声明格式如下:<函数名>(<参数列表>);注意,构造函数的名称必须与类名称相同。构造函数没有任何的返回值,所以不能有返回类型。构造函数也不能被声明为const,缺省构造函数有两种定义方法:一是令参数列表为空,二是有一个或多个含有默认值的参数。例如:Student(inti=0,char*j="");//也是缺省构造函数2.构造函数的定义习惯上,在构造函数的函数体内对数据成员进行初始化,例如:Student::Student(inti,char*j){reg_n

7、um=i;name=j;}另外,还有一种初始化方式:成员初始化列表。它位于参数列表和函数体之间,由冒号开头,后跟数据成员的名字和初值,初值放在圆括号内,类似于函数调用形式。例如,上述代码可以被改写为:Student::Student(inti,char*j):reg_num(i),name(j){}3.构造函数的调用创建一个类对象时,系统会自动调用构造函数初始化类对象成员,程序员可以用下面方式将实参传递给构造函数:StudenthuaNan(501,"Hunan");如果在定义类对象时,没有指定实参,系统会自动调用缺省构造函数。初学者易犯的错误是误用空

8、括号,例如:StudenthuaNan();//错误!StudenthuaNan;//正确!系

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

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

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