我有一个 MyClass
,它是一个链表,我已经覆盖了 operator+:
MyNode
{
int value;
MyNode* link;
}
MyClass
{
MyNode* first;
MyNode* current;
MyNode* last;
int count;
}
MyClass MyClass::operator+(MyClass* operand)
{
MyClass sum;
for(int i = 0; i < count; i++)
{
MyNode* newNode
newNode->value = value + operand->value;
sum->insert(newNode);
}
return sum;
}
当我尝试像这样在我的主要功能中实现它时:
MyClass* a = new MyClass();
MyClass* b = new MyClass();
MyClass* c;
c = a + b;
编译器抛出错误:“无法添加两个指针”。
最佳答案
您有 Java 背景吗?您不需要 new
来创建对象:
试试这个:
MyClass MyClass::operator+(const MyClass& operand)
{
MyClass result;
// Perform addition ...
return result;
}
MyClass a;
MyClass b;
MyClass c;
c = a + b;
关于c++ - 实现重载运算符时出错 "+",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13003860/