
什么是隐式类型转换?这个例子又哪里体现了这个特点?
求帮助classRMB{public:RMB(unsignedintd,unsignedintc);RMB(doublevalue);friendRMBoperator+...
求帮助
classRMB{
public:
RMB(unsigned intd, unsigned int c);
RMB(double value);
friend RMB operator+(RMB &, RMB &);
……
};
voidmain()
{RMB s(5.8); s=RMB(1.5)+s;
s=1.5+s; s= s+1.5;
s=s+1;
}
顺便说一下显式类型转换是怎么回事。。。感激不尽。。
§优点:有了转换运算符,不必提供对象参数的重载运算符§ 缺点:无法提供其类对象运算符操作的真正含义
说这是显示的有点。什么意思 有点看不懂 。 展开
classRMB{
public:
RMB(unsigned intd, unsigned int c);
RMB(double value);
friend RMB operator+(RMB &, RMB &);
……
};
voidmain()
{RMB s(5.8); s=RMB(1.5)+s;
s=1.5+s; s= s+1.5;
s=s+1;
}
顺便说一下显式类型转换是怎么回事。。。感激不尽。。
§优点:有了转换运算符,不必提供对象参数的重载运算符§ 缺点:无法提供其类对象运算符操作的真正含义
说这是显示的有点。什么意思 有点看不懂 。 展开
1个回答
展开全部
显式类型转换就是 转换的目标类型显式写出来
s=RMB(1.5)+s
1.5本身是float型,显式强制转换为RMB型,相当于实例化
s=RMB(1.5)+s
1.5本身是float型,显式强制转换为RMB型,相当于实例化
追问
隐式呢?
还有 那个§优点:有了转换运算符,不必提供对象参数的重载运算符§ 缺点:无法提供其类对象运算符操作的真正含义
什么意思
追答
隐式就是不用写明
float a=8.0;
int b=a
一般来说,转换运算符与转换构造函数(即带一个参数的构造函数)是互逆的,如有了构造函数Test(int),那么最好有一个转换运算符int()。这样就不必提供对象参数重载运算符了,如Test a1(1);Test a2(2); Test a3; a3 = a1+a2;就不需要重载+号操作符了,因为对于a1+a2的运算,系统可能会先找有没有定义针对Test的+号操作符,如果没有,它就会找有没有针对Test类转换函数参数类型的+号操作符(因为可以将+号运行结果的类型通过转换函数转换为Test对象),因为Test类有个int类型的参数,对于int类型有+操作符,所以a1+a2真正执行的是Test(int(a1) + int(a2));即Test(3);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询