重载 operator 的两难问题
时间:2008-06-05 13:55:42
来源:论坛整理 作者: 编辑:chinaitzhe
做了一个大数运算类
里面要重载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 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面