2010-06-23 77 views
6

如果你定義一個類型像typedef int MY_INT;,繼續超載,比如說,MY_INT像C++ typedef和操作符重載

 
MY_INT operator+(MY_INT a, MY_INT b); 

的ADITION運營商將

 
MY_INT a, b; 
a + b; 

是不同

 
int A, B; 
A + B; 

對不起,任何語法錯誤。我不在編譯器附近,在忘記它之前我想問一下。

+0

'MY_INT運算符+(MY_INT a,MY_INT b);'這是不可能的,因爲只有其中一個參數是類類型時才能重載算術運算符。 – Job 2010-06-23 07:32:00

+0

我向你推薦這個問題:http://stackoverflow.com/questions/2135840/whats-the-best-way-to-force-the-user-of-ac-function-to-acknowledge-the-semant – Omnifarious 2010-06-23 07:53:15

+0

@Omnifarious,你是否建議在類中包裝'int',以便我可以重載它的運算符而不影響系統類型? – Anthony 2010-07-07 00:28:26

回答

8

否。typedef實際上是另一種類型的別名。原始類型和typedef-ed類型是相同的。