您的位置:首页 > 其它

关于单参构造函数和类型转换函数

2016-04-18 16:34 176 查看
其实单参构造函数就是只有一个参数的构造函数,拷贝构造函数就是他的一种,单参构造函数和类型转化函数用法正好相反,单参构造函数是把形参中的值或者是对象转化为本对象,而类型转化函数是把本对象转换为一个值或者一个其他对象

代码如下:

itoa是一个可以把int型数据转化为string型数据的函数。在#include<stdlib.h>头文件中

#include<iostream>

#include<string>

#include<stdlib.h>

using namespace std;

class RMB{

int yuan,jiao,fen;

public:

RMB(int y = 0,int j = 0,int f = 0)

{

float ff = (y*100.0+j*10.0+f)/100;

yuan = ff;

jiao = int(ff*10)%10;

fen = int(ff*100)%10;

}

RMB(float f){ //单参构造函数

yuan = f;

jiao = int(f*10)%10;

fen = int(f*100)%10;

}

operator float(){ //函数1

return (yuan*100.0+jiao*10.0+fen)/100;

}

operator string(){ //函数二

char buffer[20];

string str(itoa(yuan,buffer,10));

str+="元";

str+=itoa(jiao,buffer,10);

str+="角";

str+=itoa(fen,buffer,10);

str+="分";

return str;

}

};

int main()

{

RMB b1 = 32.456f;//A调用了单参构造函数 用一个float数值创建一个RMB对象

float f = b1;//B有一个隐式转化调用了转换函数一将对象转化为float再赋值

cout<<f<<endl;

cout<<string(b1)<<endl;//C调用了转化函数2 将对象转化为一个string再输出

RMB b2(12,8,8);//D调用第一个构造函数

cout<<b2<<endl;//E调用了转化函数1转化为一个float再输出

cout<<string(b2)<<endl;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: