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#
- 2. C++自動「類型轉換的轉換
- 3. DatetimePicker自動轉換C#
- 4. 將C++ API自動轉換爲C#?
- 5. C#中包裝的自動轉換#
- 6. 自動void *到C++類轉換
- 7. 自動轉換2.8
- 8. 自動XML轉換
- 9. 動態轉換c#
- 10. 將簡單的C++代碼自動轉換爲C#
- 11. 錯誤自動轉換
- 12. 自動轉換到蟒蛇
- 13. XAML自動類型轉換
- 14. 自動轉換爲參考?
- 15. XSLT氧 - 自動轉換
- 16. SQL Server和自動轉換?
- 17. 將awt自動轉換爲
- 18. 停止自動轉換
- 19. Plot.ly分散,自動轉換
- 20. 使用LINQ自動轉換
- 21. VBA自動類型轉換
- 22. winmd自動轉換爲DLL
- 23. JPA自動BigDecimal轉換
- 24. CSS轉換,自己移動
- 25. 熊貓自動轉換行
- 26. 自動類型轉換
- 27. C#:手動位轉換?
- 28. OpenGL自動sRGB轉換vs手動sRGB轉換
- 29. 轉換/旋轉QGraphicsItem w /動畫Qt,C++
- 30. jQuery + Webkit + ...自動切換CSS3轉換/轉換和JavaScript?
如果您無法更改類A或類B的類定義,則沒有好的方法來執行此操作。 – Omnifarious 2010-02-07 07:32:10