請教c++的兩個問題

看板Programming作者時間18年前 (2007/09/10 02:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
想請問一個C++的問題 Q1.在標準的C++語法中 當我們定義一個類別 ( 我是這樣寫的: ) #include<iostream> using namespace std; class A { private: int a; int b; public: ... ... friend A operator+( A& a1 , A& a2 ); friend A operator+(int a1 , A& a2); ... ... }; 我用Dev-CPP這個工具來編譯可以過 可是用Visual C++編譯就有一個錯誤訊息 "INTERNAL COMPILER ERROR" 可是如果把上面include的地方改成: #include<iostream.h> 居然就可以過了 難道Visual C++只有舊版的iostream能用friend operator overload, 新版的就不能用嗎? 還是說是我的軟體有問題呢? Q2. 如過要重載運算子的話,好像第一個運算元必須要屬於該類別,不然就要用friend來做 而且好像在兩個運算元當中至少要有一個是屬於該類別 如果是寫 friend A operator+(int x1 , int x2) 就不給過的樣子 可是如果真的有實際需要怎麼辦? 如果真的需要兩個運算元都不屬於該類別, 可是卻要傳回該類別的物件 那個怎麼用運算子重載來實做呢? -- 參考一下.. http://members.lycos.co.uk/jiannrong/sell.htm -- ┌─────KKCITY─────┐  線上音樂新震撼   bbs.kkcity.com.tw ^_^ / 隨選隨播免等待 KKBOX ^_^ / └──From:218.169.119.6 ──┘   http://www.kkbox.com.tw   --
文章代碼(AID): #16v3JX00 (Programming)
文章代碼(AID): #16v3JX00 (Programming)