四时宝库

程序员的知识宝库

C++ 转换构造函数(如何定义转换构造函数)

作用:

转换构造函数(conversion constructor function) 的作用是将一个其他类型的数据转换成一个类的对象?

定义:

当一个构造函数只有一个参数,而且该参数又不是本类的const引用时,这种构造函数称为转换构造函数。

转换构造函数是对构造函数的重载。

MyObject(double v) : value(v){};

使用:

MyObject obj
obj = 1.5;  	// 调用转换构造函数将1.5转换为MyObject类型 
double d;
d = c1 + 1.1	// 先调用类型转换函数将c1转为double类型,然后在与1.1相加!

MyObject 类对具有双重身份,既是MyObject类对象,又可作为double类型数据, MyObject类对象只有在需要时才进行转换,要根据表达式的上下文来决定?转换构造函数和类型转换运算符有一个共同的功能: 当需要的时候,编译系统会自动调用这些函数,建立一个无名的临时对象(或临时变量)?

注意事项:

  1. 借助转换构造函数不仅可以将一个标准类型数据转换成类对象,也可以将另一个类的对象转换成另一个类对象?
  2. 如果不想让转换构造函数生效,也就是拒绝其它类型通过转换构造函数转换为本类型,可以在转换构造函数前面加上explicit
explicit MyObject(double v):value(v){};

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接