C++思维导图

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

转换函数举例:classA{inti;public:public:A(inta=0){i=a;}voidShow(void){couti=iendl;}operatorint(){returni;}};voidmain(void){Aa1(10),a2(20);couta1endl;couta2endl;}点评:转换函数的出现就是为了能够把类的对象转化成你想要的类型格式:类名::operatoroperatoroperatoroperatorfloat()float()float()float()注意,转换函数只能是成员函数,不能是友元函数。转换函数的操作数是对象。classString{intLength;//字符串的长度char*Sp;//指向字符串的指针public:String(){Sp=0;Length=0;}//缺省的构造函数String(char*s)//以一个字符串常量作为参数{Length=strlen(s);Sp=newchar[Length+1];strcpy(Sp,s);}~String(){if(Sp)delete[]Sp;}friendStringoperator+(String&,String&);//友元函数重载+String&operator=(String&);//成员函数重载赋值=String(String&s);//拷贝的构造函数(必须有)};voidmain(void){Stringstr1(China);Stringstr2(CCTV);Stringstr3;str3=str1+str2;str2=str1;coutstr3endl;}String&String::operator=(String&str){if(Sp)delete[]Sp;Length=str.Length;Sp=newchar[Length+1];strcpy(Sp,str.Sp);return*this;}Stringoperator+(String&str1,String&str2){Stringstr;str.Length=str1.Length+str2.Length;str.Sp=newchar[str.Length+1];strcpy(str.Sp,str1.Sp);strcat(str.Sp,str2.Sp);returnstr;}若不定义字符串的析构函数,则可以不定义它的拷贝的构造及赋值函数,若定义了析构函数,必须重新定义这两个成员函数。原则:每个对象都有自己的独立空间。如果nnnn是非0000,那么!n!n!n!n就是0.0.0.0.因此文件打开成功返回的是非负、

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功