c++ - 第三方类型之间的隐式转换

标签 c++ type-conversion

有两个类:AB。有一些算法可以将类型 A 转换为类型 B 并返回。我们无法触及它们的源代码。我可以编写两种类型之间的隐式转换吗?

应该工作的示例代码:

B CalculateSomething(double x)
{
    A a(x);
    a.DoSomethingComplicated();
    return a;
}

最佳答案

不,我不这么认为。隐式转换通常使用重载运算符进行编码。它也适用于基本类型。由于您无法修改 A 和 B 代码,因此无法告诉编译器如何修改。您的代码段会出错。

您必须进行显式转换。只是

return helper.convertToB(a);

我的2c

关于c++ - 第三方类型之间的隐式转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2424066/

相关文章:

c++ - FFT 噩梦)

c++ - 字符串比较很奇怪

c++ - Bison 更好的内存管理

scala - 将 Map[String, Double] 转换为 java.util.Map[String, java.lang.Double]

java - Java中的隐式转换如何工作?

c++ - 如何将 const char* 转换为 const WCHAR*

python - 如何将 xlwings 中的每个字段读取为字符串?

c++ - 使用 gluLookAt 的 OpenGL 相机旋转

c++ - Nasm,C++,传递类对象

python - 在 python 中将 RAW 图像转换为 TIFF 但保留元数据