2023年二、类的设计,构造函数和析构函数.docx
《2023年二、类的设计,构造函数和析构函数.docx》由会员分享,可在线阅读,更多相关《2023年二、类的设计,构造函数和析构函数.docx(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2023年二、类的设计,构造函数和析构函数 类是编程人员表达自定义数据类型的C+机制。它和C语言中的结构类似,C+类支持数据抽象和面向对象的程序设计,从某种意义上说,也就是数据类型的设计和实现。 一、类的设计 1.类的声明 cla 类名 private:/私有 .public:/公有 . ; 2.类的成员 一般在C+类中,所有定义的变量和函数都是类的成员。如果是变量,我们就叫它数据成员如果是函数,我们就叫它成员函数。 3.类成员的可见性 private和public访问控制符决定了成员的可见性。由一个访问控制符设定的可访问状态将一直持续到下一个访问控制符出现,或者类声明的结束。私有成员仅能被同
2、一个类中的成员函数访问,公有成员既可以被同一类中的成员函数访问,也可以被其他已经实例化的类中函数访问。当然,这也有例外的情况,这是以后要讨论的友元函数。类中默认的数据类型是private,结构中的默认类型是public。一般情况下,变量都作为私有成员出现,函数都作为公有成员出现。 类中还有一种访问控制符protected,叫保护成员,以后再说明。 4.初始化 在声明一个类的对象时,可以用圆括号()包含一个初始化表。 看下面一个例子: #include iostream.h cla Box private: int height,width,depth;/3个私有数据成员 public: Box
3、(int,int,int); Box(); int volume();/成员函数 ; Box:Box(int ht,int wd,int dp) height=ht; width=wd; depth=dp; Box:Box() /nothing int Box:volume() return height*width*depth; int main() Box thisbox(3,4,5);/声明一个类对象并初始化 cout return 0; 当一个类中没有private成员和protected成员时,也没有虚函数,并且不是从其他类中派生出来的,可以用来初始化。(以后再讲解) 5.内联函数
4、内联函数和普通函数的区别是:内联函数是在编译过程中展开的。通常内联函数必须简短。定义类的内联函数有两种方法:一种和C语言一样,在定义函数时使用关键字inline。如: inline int Box:volume() return height*width*depth; 还有一种方法就是直接在类声明的内部定义函数体,而不是仅仅给出一个函数原型。我们把上面的函数简化一下: #include iostream.h cla Box private: int height,width,depth; public: Box(int ht,int wd,int dp) height=ht; width=wd
5、; depth=dp; Box(); int volume() return height*width*depth; ; int main() Box thisbox(3,4,5);/声明一个类对象并初始化 cout return 0; 这样,两个函数都默认为内联函数了。 二、构造函数 什么是构造函数?通俗的讲,在类中,函数名和类名相同的函数称为构造函数。上面的Box()函数就是构造函数。C+允许同名函数,也就允许在一个类中有多个构造函数。如果一个都没有,编译器将为该类产生一个默认的构造函数,这个构造函数可能会完成一些工作,也可能什么都不做。 绝对不能指定构造函数的类型,即使是void型都不可
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 设计 构造 函数
限制150内