有没有办法在动态C ++对象中使用运算符重载

时间:2011-11-30 06:48:11

标签: c++ dynamic operators operator-overloading overloading

我想在C ++中使用动态对象的运算符重载

我该怎么做?

1 个答案:

答案 0 :(得分:1)

我认为动态对象是指为堆创建的对象,因此它们被引用为指针。你是对的,对这些对象使用重载运算符不如本地对象舒服。但这是可能的。它看起来很糟糕。而且因为我们在谈论C ++,所以有不止一种方法可以做到。

假设我们有一个名为Irrational的类,它会重载+ =运算符,你可以这样做:

Irrational* a = new Irrational(2,-4);
a->operator+=(3);

Irrational* b = new Irrational(2,-4);
(*b) += 3;

因此,通过使用“operator”前缀调用堆对象的重载运算符,在这种情况下,它很像函数调用,或者通过首先将指针转换为引用,在这种情况下,它的工作原理更多“一般”。就是这样。