类和对象的基础5——类的类型转换

1、分类:(1)一般数据类型到类类型的转换;(2)类类型到一般数据类型的转换。


2、类型的隐式转换:

(1)在执行算术运算时,低精度数据自动向高精度转换;

(2)赋值运算时,右值自动转换为左值得类型;

(3)函数调用时看,实参类型自动转换为形参类型;

(4)函数有返回值时,返回值类型自动转换为函数的类型。


3、一般数据类型转换为类类型

(1)方法:采用单个参数的构造函数实现。

(2)例子:验证类型转换

/***********************************
时间:2016年10月2日09:15:56
功能:验证一般数据类型到类类型的转换
************************************/
#include <iostream>
using namespace std;

class Data
{
public:
	Data();     //无参构造函数
	Data(int a);   //单参构造函数
	void print();
private:
	int d;
};

Data::Data()
{
	cout<<"in non-parm con func"<<endl;
	d = 0;
}

Data::Data(int a)
{
	d = a;
	cout<<"in parm con func"<<endl;
}

void Data::print()
{
	cout<<d<<endl;
}

void main()
{
	Data d;
	d = 100;     //用一般数据类型给类的对象进行初始化,到时必会发生类型的转换
	d.print();
}

4、类类型到一般数据类型的转换

(1)方法:必须通过转换函数来实现。

(2)转换函数的格式:

operate  <数据类型说明符>()

{

///函数体

}

注:这个函数不需要参数也不需要函数返回值类型。


5、例子:实现类类型到一般数据类型的转换。

/***************************************
时间:2016年10月2日09:54:14
功能:实现类类型到一般数据类型的转换
****************************************/
#include <iostream>
using namespace std;

class Data
{
public:
	Data(int a);   //构造函数
	operator double();   //类型转换函数
private:
	int da;
};

Data::Data(int a)
{
	da = a;
}

Data::operator double()
{
	return da*1.2;
} 

void main()
{
	Data d(1);    //定义一个Data的类
	double a = 0.0;
	a = d + 1.25;
	cout<<a<<endl;

}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路漫求索_CUMT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值