請教c++的兩個問題
想請問一個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 ◤
--
Programming 近期熱門文章
PTT數位生活區 即時熱門文章