C++构造函数和析构函数

C++构造函数和析构函数

ID:37914812

大小:28.00 KB

页数:5页

时间:2019-06-02

C++构造函数和析构函数_第1页
C++构造函数和析构函数_第2页
C++构造函数和析构函数_第3页
C++构造函数和析构函数_第4页
C++构造函数和析构函数_第5页
资源描述:

《C++构造函数和析构函数》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C++构造函数和析构函数1.C++规定,每个类必须有默认的构造函数,没有构造函数就不能创建对象。2.若没有提供任何构造函数,那么c++提供自动提供一个默认的构造函数,该默认构造函数是一个没有参数的构造函数,它仅仅负责创建对象而不做任何赋值操作。3.只要类中提供了任意一个构造函数,那么c++就不在自动提供默认构造函数。4.类对象的定义和变量的定义类似,使用默认构造函数创建对象的时候,如果创建的是静态或者是全局对象,则对象的位模式全部为0,否则将会是随即的。#includeusingnamespacestd;c

2、lassStudent{public:Student()//无参数构造函数{number=1;score=100;}voidshow();protected:intnumber;intscore;};voidStudent::show(){cout<

3、udent()函数体内的代码那么它和c++的默认提供的构造函数等价的。构造函数可以带任意多个的形式参数,这一点和普通函数的特性是一样的!下面我们来看一个带参数的构造函数是如何进行对象的始化操作的.#includeusingnamespacestd;classTeacher{public:Teacher(char*input_name)//有参数的构造函数{name=newchar[10];//name=input_name;//这样赋值是错误的strcpy(name,input_name);}voidsho

4、w();protected:char*name;};voidTeacher::show(){cout<

5、义不单纯是调用函数,而是创建一个类对象。  一旦类中有了一个带参数的构造函数而又没无参数构造函数的时候系统将无法创建不带参数的对象,所以上面的代码Teachera;  就是错误的!!!  这里还有一处也要注意://name=input_name;//这样赋值是错误的  因为name指是指向内存堆区的,如果使用name=input_name;会造成指针指向改变不是指向堆区而是指向栈区,导致在后面调用析构函数delete释放堆空间出错!(析构函数的内容我们后面将要介绍)c++规定如果一个类对象是另外一类的数据成员,那么在创建对象的

6、时候系统将自动调用那个类的构造函数。#includeusingnamespacestd;classTeacher{public:Teacher(){director=newchar[10];strcpy(director,"王大力");}char*show();protected:char*director;};char*Teacher::show(){returndirector;}classStudent{public:Student(){number=1;score=100;}voidshow();p

7、rotected:intnumber;intscore;Teacherteacher;//这个类的成员teacher是用Teacher类进行创建并初始化的};voidStudent::show(){cout<

8、码中的Student类成员中teacher成员是的定义是用类Teacher进行定义创建的,那么系统碰到创建代码的时候就会自动调用Teacher类中的Teacher()构造函数对对象进行初始化工作!  这个例子说明类的分工很明确,只有碰到自己的对象的创建的时候才自己调用自己的构

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

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

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