转换

特定类的对象类型转换为另一种类型的对象。 这是通过构造对象从源类类型的目标类类型和复制结果对目标对象。 此过程由构造函数调用转换。 对象的用户提供的转换函数将转换。

当标准转换 (介绍 标准转换) 时无法从特定类型完全转换为类类型,编译器可以选择用户定义的转换帮助完成该工作。 除了显式类型转换外,转换时,会发生:

  • 初始值设定项表达式不是与初始化的对象的类型。

  • 用于参数的类型函数调用不与函数声明中指定的参数的类型。

  • 从函数返回的对象的类型不匹配在函数声明上指定的返回类型。

  • 两个表达式操作数必须是同一类型。

  • 控件迭代或 select 语句的表达式需要从提供的一个不同的类型。

个用户定义的转换,才会明确,适用;否则,错误消息生成。 出现在用法进行检查。 因此,因此,如果导致多义性未使用的功能,类可以指定与潜在的歧义和不生成任何错误。 虽然存在多义性显示的大多数情况下,这些是多义性的两个生成的原因:

  • 使用多重继承,类类型派生,并且,它从选择转换的哪一基类不明确 (请参见 多义性)。

  • 显式类型转换运算符和构造函数同一转换的存在 (请参见 转换函数)。

由构造函数所用的转换功能的变换和平移遵循访问控制规则,如 成员访问控件所述。 ,在发现转换明确的后面,访问控制测试。

有关其他信息,请参见 转换构造函数

请参见

参考

特殊成员函数(C++)