gpt4 book ai didi

c++ - 实现重载运算符时出错 "+"

转载 作者:行者123 更新时间:2023-11-30 02:02:35 24 4
gpt4 key购买 nike

我有一个 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com