博主主页:@ᰔᩚ. 一怀明月ꦿ
❤️专栏系列:线性代数,C初学者入门训练,题解C,C的使用文章,「初学」C++
座右铭:“不要等到什么都没有了,才下定决心去做”
大家觉不错的话,就恳求大家点点关注,点点小爱心,指点指点
目录
转换构造函数
类型转换函数
转换构造函数指的是构造函数只有一个参数(或其他的参数都带有默认值),转换构造函数不仅将一个标准类型数据转换成类对象,也可以将另一个类的对象转换成转换构造函数所在类的对象转换构造函数语法格式如下:class A { public: A(const B &引用名) { //从B类 类型到A类 类型的转换 } };
例如:
#include
using namespace std; class Solid { public: Solid(int x,int y,int z):_x(x),_y(y),_z(z) { ; } void show() { cout<<"三维坐标:"<<_x<<","<<_y<<","<<_z<
通过构造函数可以进行类型转换,但是它的转换功能受到限制。由于无法为基本类型定义构造函数,因此, 不能利用构造函数把自定义类型数据转换成基本数据类型的数据,只能从基本类型向自定义的类型转换 。 类型转换函数则可以用来把原类类型转换成另一种目的类型类型转函数的格式:class 类名 { operator 目的类型() { 函数体 } };
其中类名为原类类型;目的类型名为要转换成的类型
例如:#include
using namespace std; class Swap { public: Swap(int x,int y):a(x),b(y) { ; } operator char()类型转换函数 { return (char)a; } void show() { cout< 关于类型转换函数的注意事项
(1) 类型转换函数只能定义为一个类的成员函数而不能定义为类的友元函数或普通函数 ,因为转换的主体是本类的对象(2)类型转函数和成员函数一样(3) 类型转换函数既没有参数,也不显式给出返回类型(4) 类型转换函数中必须有"return 目的类型的数据"的语句(5)一个类可以定义多个类型转换函数(6)通常把类型转换函数也称为类型转换运算符函数,由于它也是重载函数, 因此也称为转换运算符重载函数。
如果大家还有不懂或者建议都可以发在评论区,我们共同探讨,共同学习,共同进步。谢谢大家!