C++ 面向对象- -运算符的重载(三)

本文详细介绍了C++中不同类型的转换,包括标准类型数据间的转换、转换构造函数和类型转换函数。重点讲解了转换构造函数如何将其他类型数据转换为类对象,以及类型转换函数如何将类对象转换为标准类型。同时,文章探讨了运算符重载在这些转换过程中的应用,强调了在重载运算符时应注意的设计原则和注意事项。
摘要由CSDN通过智能技术生成

目录

不同类型数据间的转换

1、标准类型数据间的转换

2、转换构造函数

3、类型转换函数

关于运算符重载的归纳


 

不同类型数据间的转换

1、标准类型数据间的转换

在以前我们对一个变量初始化或者不同数据间进行运算时,都会涉及到数据类型的转换,只是有显式和隐式的区别。隐式类型转换是编译系统自动完成的,不需要用户干预,例:

int i=6;
i=7.5+i;

编译系统对 7.5 是作为 double 型数处理的,在求解表达式时,先将 i 的值 6 转换成 double 型,然后与 7.5 相加,得到和为 13.5 ,在向整型变量 i 赋值时,将 13.5 转换成整数 13 ,然后赋给 i 。

显式类型转换是人为地指定将一种指定的数据转换成另一指定的类型,其形式为: 类型名(数据),或者 (类型名)数据,但提倡用后边那种形式,看着比较清晰。

 

2、转换构造函数

转换构造函数的作用是将一个其类型的数据转换成一个类的对象。在此之前回顾一下之前学的构造函数,以现有一个复数类为例,默认构造函数(Complex(),无形参)、用于初始化的构造函数(Complex(double r,double i),为类对象进行初始化)、复制构造函数(Complex(Complex c),形参是本类对象)。

转换构造函数只有一个形参,如 

Complex (double r){
    real=r;
    imag=0;
}

作用就是将 double 型参数 r 转换成 Complex 类的对象,将 r 作为复数的实部,虚部为0(这部分可以根据需要定义转换构造函数)。在一般的类体中,可以有转换构造函数,也可以没有转换构造函数,视需要而定。

举一些例子来说:如果在Complex 类中定义了上面的转换构造函数,那么在 Complex 类的作用域内可定义 Complex c1(3) ,由于其只有一个参数,故会调用上面的转换构造函数,将 int 型常数转换成一个

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值