重载 operator 的两难问题

时间:2008-06-05 13:55:42   来源:论坛整理  作者:  编辑:chinaitzhe
还在学C , 这个问题可能很笨请不吝赐教!!

做了一个大数运算类
里面要重载operator

有两种做法:
1 是 BigNum& BigNum::operator (BigNum&);
2 是 friend BigNum& operator (BigNum&, BigNum&);

在使用时碰到这样的情况
BigNum a,b;
...
std::cout < <a b;

假如使用方法1,会修改a的值,不符合要求 (假如有其他做法请指教)
假如使用方法2,必须产生一个临时的对象以返回,
就是说在 operator 的代码里可能会有像 BigNum *result = new BigNum() 这样的语句
但是new完之后没办法 delete会造成内存泄漏啊, 除非专门写一块代码来治理这种临时对象

请问还可以有怎样的解决方法呢
非常谢谢
网友回复:先读读《Effective C 》吧。
网友回复:不是定义成
BigNum BigNum::operator (BigNum&)么?
关键字:重载,operator,两难,问题,

文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面