面向对象程序设计语言C++第04章 深入类与对象
- 格式:ppt
- 大小:829.00 KB
- 文档页数:53
c++面向对象知识点总结
1.类和对象:类是一种抽象数据类型,用于封装具有相似属性和操作的数据。
对象是类的实例化,具有自己的属性值和方法。
2. 继承:继承是指派生类从基类中继承属性和方法的过程。
派生类可以添加自己的属性和方法,或者重写基类的方法。
3. 多态性:多态性指的是一个对象可以具有多种形态,同一操作作用于不同的对象上会产生不同的效果。
多态性可以通过虚函数实现。
4. 抽象类与接口:抽象类是具有纯虚函数的类,不能直接实例化。
接口是类的一种特殊形式,只包含纯虚函数,用于定义一组操作。
5. 友元函数与友元类:友元函数是类的非成员函数,可以访问类的私有成员。
友元类是指一个类可以访问另一个类的私有成员。
6. 构造函数与析构函数:构造函数用于初始化对象的属性值,析构函数用于释放对象占用的空间和资源。
7. 运算符重载:运算符重载是指重新定义运算符的操作,以适用于用户自定义类型。
8. 异常处理:异常处理是指在程序执行过程中发生错误时,以一种可控的方式进行处理。
C++中使用try-catch语句进行异常处理。
9. 模板类与模板函数:模板类是指具有泛型参数的类,模板函数是指具有泛型参数的函数。
泛型参数使得类和函数可以适用于多种数据类型。
10. STL库:STL是C++标准库的一部分,包含了很多常用的数
据结构和算法,如容器、迭代器、算法等。
STL使得C++程序开发更高效和易于维护。
C++实验报告实验4 类与对象一、实验目的1、掌握类的声明和使用2、掌握类的声明和对象的声明3、复习具有不同访问属性的成员的访问方式4、观察构造函数和析构函数的执行过程5、学习类的组合使用方法6、使用DEBUG调试功能观察程序流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序二、实验任务1、声明一个CPU类,包含等级rank、频率frequency、电压voltage等属性,有两个公有成员函数run、stop。
其中,rank为枚举类型CPU-Rank,声明为enum CPU-Rank{P1=1,P2,P3,P4,P5,P6,P7}, frequency为MHz的整数型,voltage为浮点型的电压值。
观察构造函数好析构函数的调用顺序。
2、声明一个简单的Computer类,有数据成员芯片cpu、存ram、光驱cdrom等,有两个公有成员函数run、stop。
cpu为CPU类的一个对象,ram为RAM类的一个对象,cdrom为CDROM类的一个对象,声明并实现这个类。
3、设计一个用于人事管理的People类。
考虑到通用性,这里只抽象出所有类型人员都具有的属性:number编号、sex性别、birthday出生日期、id号等。
其中出生日期声明为一个日期类嵌子对象。
用成员函数实现对人员信息的录入和显示。
要求包括:构造函数和析构函数、拷贝构造函数、嵌成员函数、组合。
三、实验容任务1:首先声明枚举类型,在这里出现了知识性错误,不清楚具体应如何声明,经查询相关书籍,知道应在类外进行声明。
初次用类来进行编程,在概念上是有一些混乱的,例如构造函数和析构函数的调用顺序等。
在用debug单步调试后,明白其中道理。
源程序://Lab4_1.cpp#include<iostream>using namespace std;enum CPU_Rank {P1=1,P2,P3,P4,P5,P6,P7};class CPU { //CPU类的定义private: //私有数据成员CPU_Rank rank;int frequency;float voltage;public: //外部接口CPU(CPU_Rank r,int f,float v) { //CPU类的构造函数rank=r;frequency=f;voltage=v;cout<<"构造了一个CPU!"<<endl;}~CPU() { //CPU类的析构函数cout<<"析构了一个CPU!"<<endl;}void run(){cout<<"CPU开始运行"<<endl;}void stop(){cout<<"CPU停止运行"<<endl;}};//主函数int main(){CPU a(P6,300,2.0); //建立CPU类的对象a.run();a.stop();return 0;}实验结果:从debug调试中可知,在创建类的对象时,首先调用其构造函数,之后,在其他成员函数调用结束后,对象的生存期结束,系统便自动调用析构函数,进行析构。