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