看板Programming
标 题请教c++的两个问题
发信站KKCITY (Sun Sep 9 22:40:42 2007)
转信站ptt!ctu-reader!ctu-peer!news.nctu!netnews.chu!Leo.mi.chu!zoonews.ee.nt
想请问一个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 ◤
--