构造函数中的类型转化和反构造函数
来源:互联网 发布:淘宝网帽子女士太阳帽 编辑:程序博客网 时间:2024/06/04 20:01
class A
{
private:
double a;
int b;
public:
A(double a);
A(double a,int b);
上面的函数如果构造函数只有一个参时,则需要进行隐式的类型转化,也就是先将传递的参数转换成double型,然后再赋值给类。然而,有的时候不需要这种转换,可以在声明中使用explicit,则构造函数就不会用于隐式的转换了。
显示的转换需要在前面加上类型函数,例如st=int(lb);
2:转换函数:能否将上述的对象转化为double呢?例如:A a(12.5);double d=a;
可以这样做,但不是使用构造函数,而是用转换函数。转换函数是用户定义的强制类型转换,可以像使用强制类型转换那样使用它们。例如:
A a (12.2);
double a1=double (a);
double a2=(double) a;
如何定义转换函数呢?转换函数的原型是:operator typeName();
1):转换函数必须是类方法。
2):转换函数不能指定返回类型。
3):转换函数不能有参数。
例如:operator double();
总之,C++为类提供了下面的类型转换。
1)只有一个参数的类构造函数用于将类型与该函数与该参数相同的值转换为类类型。例如,将int 值赋值给stonew对象时,接受int 参数的stonewt类构造函数将自动被调用。然而在构造函数声明中使用explicit可防止隐式转换,而只允许显示转换。
2)被称为转换函数的特殊类成员运算符函数,用于将类对象转换为其他类型。转换函数是类成员,没有返回类型,没有参数,名为operator typeNmae(),其中,typeName是对象被转换成的类型。将类对象赋给typeName变量或将其强制转换为typeName类型时,该转换函数将自动被调用。
- 构造函数中的类型转化和反构造函数
- C#中的类型构造函数(静态构造函数)
- 结构类型、结构函数和构造函数
- 类型转换中的复制构造函数应用
- 类型转换构造函数
- 类型转换构造函数
- 类型转换构造函数
- 类型转换构造函数
- C++中的构造函数,拷贝构造函数和赋值运算
- c++中的构造函数和拷贝构造函数
- C++中的构造函数,拷贝构造函数和赋值运算
- C++ 学习之构造函数:构造函数小结3 默认构造函数、隐式类型转换和复制构造函数
- C++ 学习之构造函数:构造函数小结3 默认构造函数、隐式类型转换和复制构造函数
- C++ 学习之构造函数:构造函数小结3 默认构造函数、隐式类型转换和复制构造函数
- c++构造函数和类型转换
- 关于JavaScript中的构造函数和对象中的构造属性
- C#中的构造函数
- 构造函数中的引用
- linux安装mysql---源码安装
- LA 4329(树状数组)
- 关于vs2008下报PRJ0019错误的方法
- HSI、HSV、RGB、CMYK、HSL、HSB、Ycc、XYZ、Lab、YUV颜色模型的区别
- ipv6 ipv4的不同
- 构造函数中的类型转化和反构造函数
- MySql 常用命令
- Linux makefile 教程 非常详细,且易懂
- POSIX 消息队列
- TTL与CMOS的区别
- JMP指令转换公式推导
- Highcharts
- 利用System.IO中的Directory类对指定的目录进行遍历
- 颜色特征提取