c++类中的 转换函数问题

来源:百度知道 编辑:UC知道 时间:2024/06/24 05:20:49
为什么要用转换函数,转换函数有什么作用,转换构造函数和成员构造函数的区别是什么?哪位可以给解释一下,最好是用例子分析一下,谢谢了。

普通类型之间的转换:
隐式转换:
例:int t=1.12;(由C++自行按进行转换的内置规则自动转换;)
显式强制转换:
例:int*t=(int*)1.12;

转换构造函数用于将某种类型到类类型的转换;

假设在一个类中有转换构造函数:类名(double)
则可以这样写代码:
类名 类对象=1.12;
但如果用转换构造函数用到了explicit关闭了所有的隐式转换,则要写成:
类名 类对象=(类名)1.12;
转换构造函数就是成员构造函数,不过只有一个参数的才能做为转换构造函数

转换函数是用于类类型到某种类型的转换:
原形:operator 内部类型();
1.转换函数必须是类方法;
2.转换函数不能指定返回类型;
3.转换函数不能有参数;

使用:
类名 类对象=1.32;
double t=类对象;
或double t=double(类对象);
编译器发现:右边的是类类型,左边的是double,它将查找你是否定义了与之相同
的转换函数(如果没有将报错;)

从上面可以看出类类型的代码的表现形式和使用内部类型的语法形式一样,这个
就是转换构造函数和转换函数的目的;

大概指
struct A
{
int x;

A(float x)
{
this->x = (int)x;
}
};

这样的吧...

A a = 10; 利用构造函数实现int到A的类型转换的效果... 不过真诡异...

转换构造函数和成员构造函数

用C++这么多年了,没听说过这两个概念。不知道又是那本教程钻字眼咯。。。
或者是鄙人才疏学浅啊,哎。

学C++这么久 没有听说过转换构造函数和成员构造函数?

什么