gpt4 book ai didi

c++ - ostream& 不命名类型错误。我在这里做错了什么?

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

我是一名学习者。我正在研究运算符重载。我正在尝试编写用于重载 [] 的代码并打印成员数组中的元素。但是当我重载 << 以打印成员数组时,我收到错误消息,ostream& 没有类型。我在这里做错了什么?另外,如果我有一个具有两个成员数组的类,我该怎么办?下面是我的代码:

#include <iostream>
#include <cassert>
class Digit
{
private:
int digit1[3]{0};

public:
int& operator[](const int index);

ostream& operator<<(ostream& out);
};

int& Digit::operator[](const int index)
{
return digit1[index];
}

ostream& Digit::operator<<(ostream& out)
{
int loop;
out << "{";
for (loop = 0; loop < 10; loop++)
{
out << digit1[loop] << " ";
}
out << "}";

return o;
}

int main()
{
using namespace std;

Digit n;
n[0] = 4;
n[1] = 3;
n[2] = 4;


n << cout;

return 0;
}

最佳答案

你放了

int main()
{
using namespace std;
//....

这在您声明 << 的地方看不到运算符(operator)。一种解决方案是更改签名以包含名称:

在类里面:

std::ostream& operator<<(std::ostream& out)

然后

std::ostream& Digit::operator<<(std::ostream& out)

当你在那里的时候,我想知道它是否应该是const

关于c++ - ostream& 不命名类型错误。我在这里做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34085842/

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