【例212】重载函数应用举例[1].doc
上传人:yy****24 上传时间:2024-09-10 格式:DOC 页数:10 大小:62KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

【例212】重载函数应用举例[1].doc

【例212】重载函数应用举例[1].doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

重载函数应用举例#include<iostream.h>intadd(intx,inty){intsum;sum=x+y;returnsum;}intadd(intx,inty,intz){intsum;sum=x+y+z;returnsum;}voidmain(){inta,b;a=add(5,10);b=add(5,10,20);cout<<”a=”<<a<<endl;cout<<”b=”<<b<<endl;}程序运行结果为:a=15b=35析构函数和构造函数的调用顺序#include<iostream.h>#include<string.h>classStudent{public:Student(char*pName="noname",intssId=0){strncpy(name,pName,40);name[39]='\0';id=ssId;cout<<"Constructingnewstudent"<<pName<<endl;}Student(Student&s)//拷贝构造函数{cout<<"Constructingcopyof"<<s.name<<endl;strcpy(name,"copyof");strcat(name,s.name);id=s.id;}~Student(){cout<<"Destructing"<<name<<endl;}protected:charname[40];intid;};voidfn(Students){cout<<"Infunctionfn()\n";//fn函数调用结束时,析构对象s}voidmain(){Studentrandy("Randy",1234);//调用构造函数,创建对象randyStudentwang("wang",5678);//调用构造函数,创建对象wangcout<<"Callingfn()\n";fn(randy);//调用fn函数,参数传递时调用拷贝构造函数cout<<"Returnedfromfn()\n";}//主函数调用结束时,先析构对象wang,再析构对象randy程序的运行结果为:ConstructingnewstudentRandyConstructingnewstudentwangCallingfn()ConstructingcopyofRandyInfunctionfn()DestructingcopyofRandyReturnedfromfn()DestructingwangDestructingRandy缺省构造函数#include<iostream>#include<string>usingnamespacestd;classStudent{public:Student(char*pName){cout<<"calloneparameterconstructor"<<endl;strncpy(name,pName,sizeof(name));name[sizeof(name)-1]='\0';cout<<"thenameis"<<name<<endl;}Student(){cout<<"callnoparameterconstructor"<<endl;}//注意,上面的无参构造函数不能省略protected:charname[20];};voidmain(){StudentnoName;Studentss("Jenny");}程序的运行结果为:callnoparameterconstructorcalloneparameterconstructorthenameisJenny友元函数的定义和使用#definestrmax32#include<string.h>#include<iostream.h>classmyclass{intx,y;char*string;public:myclass(intvx,intvy,char*str);friendintsum(myclassc1);//友元函数的声明friendintstrlength(myclassc1);//友元函数的声明friendvoidprint(myclassc1);//友元函数的声明};myclass::myclass(intvx,intvy,char*str){x=vx;y=vy;string=newchar[s