【发布时间】:2014-10-17 04:10:55
【问题描述】:
我正在尝试为 C++ 类的 += 运算符编写一个函数,该函数利用已编写的 + 运算符函数。到目前为止,我未能成功将this 指针与+ 运算符相关联。这些是我在g++ 中编译的一些尝试,但没有产生预期的结果。我曾两次尝试简单地复制 this 类,但这似乎不起作用。
intstr& intstr::operator+=(const intstr& i)
{
intstr *a;
a = new intstr;
*a = *this + i;
return *a;
}
intstr& intstr::operator+=(const intstr& i)
{
intstr *a, b(*this);
a = new intstr;
*a = b + i;
return *a;
}
intstr& intstr::operator+=(const intstr& i)
{
intstr *a, *b;
a = new intstr;
b = this;
*a = *b + i;
return *a;
}
intstr& intstr::operator+=(const intstr& i)
{
intstr *a;
a = new intstr;
*a = this->operator+(i);
return *a;
}
在测试代码中,我所做的只是将代码a = a + i 的工作行替换为a += i,所以我怀疑问题出在哪里,但有可能。是否只有将代码从 + 运算符复制到 += 函数中?
【问题讨论】:
-
可能重复(无论如何推荐阅读):stackoverflow.com/questions/4421706/operator-overloading
标签: c++ class operator-keyword