《C++面向对象程序设计》教案.docx

上传人:h**** 文档编号:26878139 上传时间:2022-07-20 格式:DOCX 页数:10 大小:13.59KB
返回 下载 相关 举报
《C++面向对象程序设计》教案.docx_第1页
第1页 / 共10页
《C++面向对象程序设计》教案.docx_第2页
第2页 / 共10页
点击查看更多>>
资源描述

《《C++面向对象程序设计》教案.docx》由会员分享,可在线阅读,更多相关《《C++面向对象程序设计》教案.docx(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、C+面向对象程序设计教案 第3章类和对象3.2 构造函数与析构函数 例:点类 Point class Point private: int x,y; public: Point() ; Point(int xx, int yy) x=xx; y=yy; Point(Point &p) x=p.x; y=p.y; int GetX() const return x; int GetY() const return y; void SetXY(int xx, int yy) x=xx; y=yy; void Show(); ; void Point:Show() cout”操作符。 3、this指

2、针 C+为成员函数提供了一个名字为this的指针,这个指针称为自引用指针。每当通过一个对象调用一个成员函数时,系统就自动把这个this指针指向该对象。因此使用的数据成员就是该对象的数据成员。 3.4 向函数传递对象 1、使用对象作为函数参数 2、使用对象指针作为函数参数 3、使用对象引用作为函数参数 3.5 静态成员 1、静态数据成员 在一个类中,若将一个数据成员说明为static,这种成员称为静态数据成员。与一般的数据成员不同,无论建立多少个类的对象,都只有一个静态数据的拷贝。从而实现了同一个类的不同对象之间的数据共享。 定义静态数据成员的格式如下: static 数据类型数据成员名; 静态

3、数据成员在该类定义之外被初始化。访问静态数据成员可以通过对象或指针来访问,也可以通过类名:来访问。 2、静态成员函数 定义静态成员函数的格式如下: static 返回类型静态成员函数名(参数表); 与静态数据成员类似,调用公有静态成员函数的一般格式有如下几种: 类名:静态成员函数名(实参表) 对象. 静态成员函数名(实参表) 对象指针-静态成员函数名(实参表) 例:点类 Point(演示静态成员) class Point private: int x,y; static int count; public: Point(int xx=0, int yy=0) x=xx; y=yy; count

4、+; Point(Point &p) x=p.x; y=p.y; count+; int GetX() const return x; int GetY() const return y; void SetXY(int xx, int yy) x=xx; y=yy; static int GetCount() return count; ; int Point:count=0; int main() Point a(100,200), b; cout=0 ? r : 0); void SetValue(int x, int y, double r) center.SetXY(x,y); Set

5、Radius(r); double Area(); void Show(); ; const double PI=3.14159; inline double Circle:Area() return PI * radius * radius; void Circle:Show() cout=0 ? r : 0); void SetValue(int x, int y, double r) SetXY(x,y); SetRadius(r); double Area(); void Show(); ; const double PI=3.14159; inline double Circle:A

6、rea() return PI * radius * radius; void Circle:Show() cout圆心为: Point:Show(); cout半径为: radius; 关于基类和派生类的几点说明 1、派生类继承了它的所有基类中除构造函数和析构函数之外的所有成员。 2、在派生类中成员按访问属性划分为四种:不可访问的成员、私有成员、保护成员、公有成员。 3、对从基类继承下来的成员初始化工作是通过调用基类的构造函数来完成的,调用方法是在派生类的构造函数中用初始化列表。 4、如果在派生类的构造函数省略了基类的初始化列表,则将调用基类的缺省构造函数。 5、如果基类定义了带有参数的构造

7、函数时,派生类就应当定义构造函数,以便显式地调用基类的构造函数。 6、如果派生类定义了与基类同名的新数据成员或成员函数,则此派生类的成员就覆盖了基类的同名成员,直接使用成员名只能访问到派生类的成员。 7、在同名覆盖的情况下,可以使用基类名+作用域分辨符来访问基类的同名成员。 8、如果派生类和基类的某个成员函数重名,但参数表不同,仍然属于覆盖,不属于重载。 9、对派生类的对象,构造函数的执行过程是:先调用基类的构造函数(按它们被继承时声明的顺序),再调用内嵌对象成员的构造函数(按内嵌对象声明的顺序),最后执行自己的构造函数体中的内容。 10、析构函数的调用次序正好和构造函数的调用次序相反。 例:

8、学生类 Student /student.h #include person.h class Student: public Person protected: char *Department; int Number; public: Student() Department = 0; Number = 0; Student(char *, int, char, char *, int); Student(Student &stu); Student() delete Department; void SetDep(char*); void SetNum(int num) Number =

9、num; char *GetDep() const return Department; int GetNum() const return Number; void Show(); ; /student.cpp #include student.h #include using namespace std; Student:Student(char *name,int age,char sex,char *dep,int num) : Person(name, age, sex) Department = new charstrlen(dep)+1; strcpy(Department, d

10、ep); Number = num; Student:Student(Student &stu): Person(stu) Department = new charstrlen(stu.Department)+1; strcpy(Department, stu.Department); Number = stu.Number; void Student:SetDep(char *dep) delete Department; Department = new charstrlen(dep)+1; strcpy(Department, dep); void Student:Show() Per

11、son:Show(); coutDepartment: Department, Number: Numberendl; 4.4 多重继承 例1:X和Y是基类,Z从X和Y派生 class X public: int b; X(int k) b=k; ; class Y public: int c; Y(int k) c=k; ; class Z: public X, public Y public: int d; Z(int i,int j,int k):X(i),Y(j) d=k; 例2:X和Y都从W派生而来 class W public: int a; W(int k) d=k; ; class X: public W public: int b; X(int i, int k): W(i) b=k; ; class Y: public W public: int c; Y(int i, int k): W(i) c=k; ; class Z: public X, public Y public: int d; Z(int i, int j, int k, int l): X(i,j),Y(i,k) d=l;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 策划方案

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

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