c基础程序传智1

c基础程序传智1

ID:46681943

大小:72.50 KB

页数:10页

时间:2019-11-26

c基础程序传智1_第1页
c基础程序传智1_第2页
c基础程序传智1_第3页
c基础程序传智1_第4页
c基础程序传智1_第5页
资源描述:

《c基础程序传智1》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Dn01_类的构造和析构#include,,iostreamHusingnamespacestd;classTest{public:Test(){a=10;p=(char*)malloc(100);strcpy(p,Maaabbb");cout«"我是构造函数"«endl;}voidprint(){cout«a«p«endl;}~Test(){cout«"我是析构函数"«endl;}protected:private:inta;char*p;};〃给对象搭建舞台,研究对象的生命周期voidobjplay(){Testtl;〃先定义调用tl

2、的构造函数,先析构t2的析构函数tl.print));Testt2;t2.print();}voidmain11(){//Testtl,t2;〃会执行两遍构造函数,调用无参构造函数,但不会自动调用析构函数,因为会在system那停住objplay();cout«,,hello,,«endl;system(,,pauseH);return;DnO2——构造函数的分类#inelude"iostream"usingnamespacestd;classTest2{public:〃无参构造函数Test2(){m_a=0;m_b=0;cout«"无参

3、构造函数"«endl;}〃有参构造函数Test2(inta)//this指针{m_a=a;m_b=0;cout«"有参构造函数"«endl;}Test2(inta,intb)//this指针{m_a=a;m_b=b;cout«"有参构造函数"«endl;}//copy构造函数Test2(constTest2&obj)〃作用:用一个对象來初始化另一个对象{coutvv”我也是构造函数'«endl;}public:voidprintT(){cout«"普通成员函数"«endl;}private:intm_a;intm_b;};〃有参构造函数的

4、调用分为3种voidmain21()〃无参构造函数的调用方法:直接定义对象Test2tO;//默认调用无参构造函数〃有参构造函数第1种//Test2tl();〃必须写上参数//tl.printT();errTest2tl(l,2);tl.printT();〃第2种方法Test?t2=(3,4);//调用•个参数的有参构造函数,原因:逗号表达式取最后•个值等价于//Testt2=4:〃第3种方法Test2t3=Test2(5,6);//直接调用构造函数将会产生匿名对象,匿名对象对t3进行初〃始化,(匿名对象的去留问题)tl=t3;//将t3

5、赋值给tl,叫做对彖的赋值操作,不会调用copy构造函数cout«,,hello,,«endl;system(,,pause,');return;}Dn03——显示化初始化方案:为什么需要构造函数#include"iostream"usingnamespacestd;〃当类的对象是数组时,对其显示的初始化很繁琐//因此需要用构造函数去初始化classTest3{public:voidinit(int_a,int_b){a=_a;b=_b;}protected:private:inta;intb;};voidmain31(){//l.对普通

6、的刈像初始化Test3tl;inta=10,b=20;tl.init(a,b);//2.対数组初始化,必须对数组中的每一个元素对象进行初始化,比较繁琐Test3tArray[3];tArray[0].init(l,2);tArray[l].init(l,2);tArray[2].init(l,2);〃或者Test3121;t21.init(l,2);Test3122;t22.init(3,4);Test3123;t23.init(5,6);Test3tArryl[3]={t21,t22zt23};cout«,,hello,,«endl;s

7、ystem(,lpauseH);return;}Dn04——copy构造函数的调用1234种情况#include,,iostreamHusingnamespacestd;classTest4{public:〃无参构造函数Test4(){m_a=0;m_b=0;cout«"无参构造函数"«endl;}〃有参构造函数Test4(inta)//this指针ma=a;m_b=0;cout«"有参构造函数"«endl;}Test4(inta,intb)//this指针{ma=a;m_b=b;cout«"有参构造函数"«endl;}//copy构造函

8、数Test4(constTest4&obj)〃作用:用一个对象来初始化另一个对象{cout«"我也是构造函数"«endl;m_a=obj.m_a+100;m_b=obj.m_b+100;}pu

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

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

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