- 1
- 0
- 约8.86千字
- 约 50页
- 2019-11-28 发布于上海
- 举报
;§11.1 类与对象; C++ 中构造函数和析构函数是类的特殊成员函数。
构造函数用于创建类对象,初始化其成员。
析构函数用于撤销类对象。
本章介绍构造函数、析构函数、缺省构造函数、拷贝构造函数等相关内容。; 一个类描述一类事物,描述这些事物所应具有的属性。
对象是类的一个实例,它具有确定的属性。
如学生类与某学生对象。
类的名字只有一个,但由该类创建的对象可以任意多个。
属于不同类的对象可以在不同时刻、不同环境分别创建或撤销。
与定义变量相同,可定义具有不同存储属性的各类对象。定义对象时,C++ 编译器为其分配存储空间(如果需要)。;;;;;; 另一种方法是建立对象的同时,自动调用构造函数,省去上述麻烦,使定义类对象时包含了为对象分配存储空间和初始化的双重任务。这种实现机制较为理想。
由于类的唯一性和对象的多样性,因此C++ 规定构造函数与类同名。其特点是:
Constructor is a function with the explicit purpose of initializing object.
Because such a function constructs values of a given type, it is called a constructor.
A constructor is recognized by having the same name as the class itself.
When a class has a constructor, all objects of that class will be initialized by a constructor call.;构造函数的使用方式有:构造函数在类体内定义,例如:
#include iostream.h
class Desk
{
public:
Desk()
{
weight=10;
high=5;
width=5;
length=5;
}
protected:
int weight;
int high;;;;;;;;;;; The constructor is used to initialize objects, and destructor is used to clean up objects and release resources before they are become unusable.
例如在下面情况下需要使用析构函数:一个对象当结束其生命期时,比如在函数体内定义的对象,当该函数调用结束时,局部对象被释放。
构造函数打开一个文件,使用完文件时,需要关闭文件。
从堆中分配了动态内存区,在对象消失之前必须释放。; 析构函数的特点:
无返回类型;
无参数;
不能随意调用;
不能重载。
而构造函数可以有参数,也可以重载。
析构函数与构造函数的功能相对应,所以析构函数名是构造函数名前加一个逻辑反运算符“~”;例如:下面程序段在class Xyz 类中定义了一个构造函数和一个析构函数。
class Xyz
{
public:
Xyz() //constructor definition
{
name=new char[20];
}
~Xyz() //destructor definition
{
delete name;
}
protected:
char *name;
}; 该类定义的构造函数在对象之外分配一段堆内存空间,撤销时,由析构函数收回堆内存。
注意,析构函数以调用构造函数相反的顺序被调用。
例如:在ch11-5.cpp 程序中为每个类增加析构函数则有:
//…ch11-7.cpp
#include iostream.h
class Student
{
public:
Student()
您可能关注的文档
- 房地产估价机构的品牌建立及公共关系.pptx
- 信用社银行核心业务系统新会计准则改造变化培训.pptx
- 汇率制度与外汇管制.pptx
- 形核与形核率基础知识.pptx
- 工学jaa常用类简介.pptx
- 小班数学逛超市(000002).pptx
- 工学大学计算机基础.pptx
- 抗肾上腺素药.pptx
- 计量经济学14复习及练习.pptx
- 工资软件培训.pptx
- 河北盐山中学等校2025-2026学年上学期高三一模化学试卷(含解析).docx
- 河北正定中学2025-2026学年高一上学期期末考试物理试卷(含解析).docx
- 河北张家口市怀安县2025-2026学年第一学期期末教学综合评价八年级地理试卷(含解析).docx
- 河南安阳市殷都区2025-2026学年第一学期期末教学质量检测七年级地理试卷(含解析).docx
- 河南安阳市滑县2025一2026学年第一学期期末学业质量监测八年级地理试题(含解析).docx
- 河南安阳市林州市2025-2026学年上学期期末考试高一政治试题(含解析).docx
- 河南焦作市武陟县第一中学2025-2026学年高一上学期1月月考语文试卷(含解析).docx
- 河南济源市2025-2026学年上学期期末学业质量调研七年级历史试卷(含解析).docx
- PICC导管并发症的紧急处理与护理.pptx
- 河南鹤壁市2025-2026学年高二上学期期末考试生物试题(含解析).docx
最近下载
- 如何找回误删微信好友,微信好友一键恢复.doc VIP
- 人教版高中物理课后习题答案.pdf VIP
- 人教版高中英语必修三《Unit 1 Festivals around the World》教学设计.pdf VIP
- 4.3 中国的交通运输业 第一课时 教学设计2025八年级地理上学期湘教版.pdf
- 常见IV曲线症状诊断分析.pptx VIP
- 2025年大梦杯数学竞赛试卷及参考答案解析.docx VIP
- 颈动脉支架植入术后护理查房.pptx VIP
- 小学数学巧算24点专项练习题(每日一练,共25份).docx VIP
- 小学数学巧算24点专项练习题(每日一练,共24份).docx VIP
- 医学课件-颈动脉支架植入医疗护理查房.pptx
原创力文档

文档评论(0)