gpt4 book ai didi

c++ 在我重载的运算符中参数太少 ==

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

我试图通过重载运算符 == 来比较两个数组。我的代码看起来像这样:

//myArray.h
class myArray {
int size, start, end;
int *data;

public:
myArray(int sz);
myArray(int lower, int upper);
int &operator [](const int index);
bool operator == (const myArray& index);
};

//myArray.cpp
bool operator == (const myArray& index);
{

}

但是我的 cpp 文件中有一个错误:

too few parameters for this operator function, Function definition for 'operator==' not found.

对此错误的任何建议/解决方案将不胜感激!

最佳答案

您在此处的这一行有 2 个问题:

//myArray.cpp
bool operator == (const myArray& index);

第一个问题很简单。在此上下文中不需要 ;。事实上,将一个放在那里可能会导致错误。

第二个更严重的是 operator==()myArray 的成员函数。因此,您需要像任何其他成员函数一样在定义前加上类名:

//myArray.cpp
bool myArray::operator == (const myArray& index)

应该可以正常工作。


另外值得注意的是,如果您不希望它成为一个成员函数(您似乎想要,但以防万一),您可以改为这样做:

//myArray.cpp
bool operator == (const myArray& lhs, const myArray& rhs)
{

}

然后将您的声明改为:

friend bool operator == (const myArray& lhs, const myArray& rhs);

关于c++ 在我重载的运算符中参数太少 ==,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58357829/

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