我想在C ++中使用动态对象的运算符重载
我该怎么做?
答案 0 :(得分:1)
我认为动态对象是指为堆创建的对象,因此它们被引用为指针。你是对的,对这些对象使用重载运算符不如本地对象舒服。但这是可能的。它看起来很糟糕。而且因为我们在谈论C ++,所以有不止一种方法可以做到。
假设我们有一个名为Irrational的类,它会重载+ =运算符,你可以这样做:
Irrational* a = new Irrational(2,-4);
a->operator+=(3);
Irrational* b = new Irrational(2,-4);
(*b) += 3;
因此,通过使用“operator”前缀调用堆对象的重载运算符,在这种情况下,它很像函数调用,或者通过首先将指针转换为引用,在这种情况下,它的工作原理更多“一般”。就是这样。