C++ 构造与析构函数.ppt

C++ 构造与析构函数.ppt

ID:49561854

大小:264.00 KB

页数:46页

时间:2020-02-07

C++ 构造与析构函数.ppt_第1页
C++ 构造与析构函数.ppt_第2页
C++ 构造与析构函数.ppt_第3页
C++ 构造与析构函数.ppt_第4页
C++ 构造与析构函数.ppt_第5页
资源描述:

《C++ 构造与析构函数.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第4讲构造函数与析构函数构造函数定义构造函数具有构造函数的类如何创建对象析构函数复制构造函数1构造函数constructor(对象的初始化)构造函数是每个类都具有的一种特殊函数,有以下三特点:构造函数的名字必须与类名相同;构造函数没有函数(返回)类型—不是void;在创建对象时,构造函数才被系统自动调用,不能被用户显式调用。Circle类增加构造函数classCircle{private:doubleradius;public:Circle(double);doublegetArea();doublegetRadius();voidse

2、tRadius(double);};Circle::Circle(doublenewRadius){radius=newRadius;}1-1构造函数Constructor(1)默认构造函数defaultconstructor若在类中没有显式地定义构造函数,则编译器会自动提供一个不带参数、函数体为空(即不做任何事情)的默认构造函数。<类名>::<默认构造函数名>(){}此时,在程序中创建一个对象时,编译器调用默认构造函数来初始化该对象。若程序中有自定义的构造函数,则编译器就不会再生成默认构造函数(因此不能再使用),此时必须使用自定义的构

3、造函数创建对象。(2)自定义构造函数若类中显式自定义了构造函数,此时系统将不再提供默认的无参构造函数。classCylinder{doubler,h;public:Cylinder(double,double);voidsetv(double,double);voidgetv(double&,double&);doublesurface();doublevolume();};Cylinder::Cylinder(doublerr,doublehh){r=rr;h=hh;}voidCylinder::setv(doublerr,doubl

4、ehh){r=rr;h=hh;}voidCylinder::getv(double&rr,double&hh){rr=r;hh=h;}doubleCylinder::surface(){return3.14*r*r*2+2*3.14*r*h;}doubleCylinder::volume(){return3.14*r*r*h;}Date::Date(inty=1900,intm=1,intd=1)//默认参数{year=y;month=m;day=d;}注:若有默认参数又有重载函数时,可能出现二义性。构造函数可以重载,可带默认的参数值,

5、可内联.Date::Date()//无参重载{year=1900;month=1;day=1;}Date::Date(inty,intm,intd){year=y;month=m;day=d;}构造函数的说明创建对象时系统1)为对象的数据成员分配存储空间,2)调用构造函数(可以是默认构造函数),执行构造函数体中的代码。由于构造函数在创建新对象时被系统自动调用,而且类的数据成员多为private,因此可在构造函数中进行数据成员的初始化,将构造函数的参数值赋给对象的数据成员,从而在创建对象时进行初始化。每个类都具有构造函数,没有定义构造函数

6、的类,系统自动提供默认构造函数(什么都不做,空函数)警告:一个常见的错误是在构造函数前放置一个void。1-2因为创建对象时系统要调用构造函数,则必须根据构造函数形式创建对象(创建对象时为构造函数提供实参)(1)使用不带参数的构造函数创建对象时,对象的创建形式为:类名对象名;或:类名对象名=类名();如:Circlecir1;或:Circlecir1=Circle();注意:Circlea();//错,声明了一个函数名为a,返回值为Circle类的对象。#includevoidmain(){Circlecir1;

7、cout<voidma

8、in(){Circlecir1;cout<

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

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

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