看不懂的C++:運算符重載

 1 #include <stdio.h>
 2 
 3 struct S
 4 {
 5     S(double d){
 6     
 7     }
 8     bool operator==(const S &rhs) const{
 9         return true;
10     }
11 };
12 
13 struct K{
14     K(double d){
15     
16     }
17 };
18 
19 int main()
20 {
21     S s(1.0);
22     if (1.0==s){
23         printf("ok\n");
24     }
25 }

第22行,編譯失敗。double能夠隱式轉換爲S,調用第8行的==重載函數。可是C++明確的拒絕了這一條道路。函數

相關文章
相關標籤/搜索