评论

收藏

[C++] 类的类型转换

编程语言 编程语言 发布于:2021-12-07 12:10 | 阅读数:566 | 评论:0

类型隐式转换:
(1).发生隐式转换
double d;d=1.8*3;
(2).赋值表达式,=右边表达式的值自动转换为左边变量的类型,再将值赋值给左边的变量。(注意,这种写法易带来精度损失
double d=1.8;int a=d;
(3).函数调用时,如果实参和形参的类型不一样,系统将实参转换为形参后再进行传值,这里隐含的转换通常是低类型转换为高类型。
void test(double d);func(10);  //这里的10转换为double类型
(4).函数有返回值时候
int func();double a=func();  //返回值由int类型转换为double类型
一般数据类型转换为类类型
class stu{public:  stu();  stu(int a);  void print();private:  int d;};stu::stu(){  cout << "这是无参构造函数" << endl;}stu::stu(int a){  d = a;}void stu::print(){  cout << "d=" << d << endl;}int main(){  stu p;  p = 100;  p.print();  return 0;}
这里100先转换为stu类型,然后赋值给p。
类类型到一般数据的转换:
一般形式:
operator <数据类型说明符>(){//函数体}
<数据类型说明符>是类类型所要转换的数据类型。该函数不需要参数,也不需要返回值。
例:
DSC0000.png
还有一点就是,利用operator进行多个数据转换的时候,出现二义性。可以利用static_cast<数据类型>进行强制转换。
DSC0001.png


如有不对,欢迎指正。




关注下面的标签,发现更多相似文章