Q
C++自动转换
7
A
回答
10
,你会在这种情况下,通常做的是给B
一个构造函数的A
:
class B
{
public:
B(const A&);
};
并做转换那里。编译器会说:“我怎样才能让A
a B
?哦,我看到B
可以从A
构建”。
另一种方法是使用一个转换操作符:
class A
{
public:
operator B(void) const;
}
,编译器会说:“我怎样才能让一个A
B
哦,我明白A
可以转换为B
?”。
请记住这些很容易被滥用。确保这两种类型隐含地相互转换是有意义的。
+3
我接下来是关于隐式转换运算符的警告。在过去的十年里,每当我试图引入这样的事情(除了我曾经写过的一个字符串类)之外,迟早它会在没有人期待的时候被踢出去,并因此被从代码中移除成本相当高。另请注意,编译器将始终只调用完全_one_用户定义的转换。因此,如果还有从'B'到'C'的用户定义转换,则不能使用'A'调用'void f(C)',因为这需要两次转换。 – sbi 2010-02-07 09:26:34
1
您可以提供一个演员操作符或一个参数的构造函数。
相关问题
- 1. 将C++ API自动转换为C#?
- 2. C#中包装的自动转换#
- 3. 自动XML转换
- 4. 动态转换c#
- 5. 停止自动转换
- 6. 将awt自动转换为
- 7. XSLT氧 - 自动转换
- 8. VBA自动类型转换
- 9. XAML自动类型转换
- 10. JPA自动BigDecimal转换
- 11. Emacs自动编码转换
- 12. Plot.ly分散,自动转换
- 13. 熊猫自动转换行
- 14. winmd自动转换为DLL
- 15. 将简单的C++代码自动转换为C#
- 16. C#:手动位转换?
- 17. OpenGL自动sRGB转换vs手动sRGB转换
- 18. 转换/旋转QGraphicsItem w /动画Qt,C++
- 19. jQuery + Webkit + ...自动切换CSS3转换/转换和JavaScript?
- 20. 转换和自动滚动div
- 21. 自动解析库在Objective-C - [自动化XML/JSON转换成对象]
- 22. C#转换的DataTable行转换成列与自定义格式
- 23. C++自动类型转换:容器类的错误行为
- 24. 在C++中自动将内在类型转换为enum
- 25. C++自动将常量整型转换为浮点型?
- 26. C++函数过载不明确,没有自动类型转换
- 27. 从C++/CLI转换oldsyntax:如何和可以自动化?
- 28. 自定义JSon转换为C#对象
- 29. 类型转换为自定义类 - C++
- 30. 转换C++到C#
如果您无法更改类A或类B的类定义,则没有好的方法来执行此操作。 – Omnifarious 2010-02-07 07:32:10