类中不同数据类型的转换

隐式数据类型转换,由系统自动完成,除此之外,它还提供显式数据类型转换

形式为

类型名(数据)

回顾下构造函数

1 默认构造函数

Complex();//没有参数

2 Complex(double r,double i);//初始化的构造函数

3 复制对象的复制构造函数

Complex(Complex&c);//形参是本类对象的引用

用转换构造函数进行不同数据类型的转换

转换构造函数

eg Complex(double r)

{

real=r;imag=0}//只有一个形参,只能有一个!!!!

假如定义了上述转换构造函数,出现

(1)Complex c1 (3.5);//只有一个参数,调用转换构造函数,实部为3.5,虚部为0;

(2)也可以建立一个无名的对象

Complex(3.6);//合法,但无法使用它

c1=Complex(3.6);//进行赋值,假设c1已经定义为该类的对象(可以在一个表达式中使用无名对象)

若重载“+”可以使得两个对象相加

c2=c1+2.3;是错误的因为没有进行类型转换的同时也没有重载相应得运算

若是改成

c2=c1+Complex(2,5);就是合法的

归纳:

(1)先声明一个类

(2)l类中定义一个只有一个参数的构造函数,参数的类型是需要转化的类型,函数体中指定转化方法

(3)类名 (指定类型的数据)

注:不仅可以将一个标准类型转换成类的对象,还可以将一个类对象转化成另一个类的对象

eg

Teacher(Student&s){

num=s.num;

strcpy(name,s.name);}

类型转换函数

将一个类的对象转换成另一类型的数据

形式

operator 类型名()

{实现转换的操作}

注:

(1)没有函数类型,没有参数

(2)只能作为成员函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值