gpt4 book ai didi

c++ - 在C++中,是否可以在不修改类的情况下定义对类的隐式转换?

转载 作者:行者123 更新时间:2023-12-02 10:22:47 45 4
gpt4 key购买 nike

最近,我不得不在我的C++代码中使用一些C库。我正在使用的C库定义了一个复数类,如下所示:

typedef struct sfe_complex_s
{
float real;
float img;
} sfe_complex_t;

自然,我不想在C++中使用这种C样式的数据结构,因此为了方便起见,我想定义从此类型到 std::complex<float>的隐式转换。有办法吗?还是我必须明确进行转换?

最佳答案

隐式转换应该意味着某种意义。它表示该转换的源类型和目标类型之间的紧密关系。其中一个在某种程度上被设计为在某种程度上等同于另一个。

这样,只有与源或目标类型密切相关的代码才能定义该关系。也就是说,如果您无法控制源或目标类型,则C++认为您没有资格在它们之间创建隐式转换关系。

第三方不能使类型隐式可转换。

关于c++ - 在C++中,是否可以在不修改类的情况下定义对类的隐式转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59366979/

45 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com