【发布时间】:2021-09-03 14:32:09
【问题描述】:
我正在尝试在 int prejetih 成员最高的数组中打印结构。
#include <iostream>
using namespace std;
struct Tekma {
int prejetih;
};
Tekma najvec_kosev(Tekma tekme[]) {
int maksi = 0, index = 0;
for (int i = 0;i < 2;i++) {
if (maksi < tekme[i].prejetih) {
index = i;
maksi = tekme[i].prejetih;
}
}
return tekme[index];
}
void vpis(Tekma tekme[]) {
for (int i = 0;i < 2;i++)
cin >> tekme[i].prejetih;
}
int main() {
Tekma tekme[2];
vpis(tekme);
cout << najvec_kosev(tekme);
}
编译器报告
C++ no operator matches these operands
operand types are: std::ostream << Tekma
超过cout << najvec_kosev(tekme);
【问题讨论】:
-
std::cout抛出哪个错误? -
cout不知道如何打印Tekma。你可以重载operator<<或者cout << najvec_kosev(tekme).prejetih; -
它抛出一个:
C++ no operator matches these operands operand types are: std::ostream << Tekma错误 -
@TimHajdinjak,因此,如果您仔细阅读错误消息,您可能会意识到您需要为您的类型重载
operator<<。 -
您可以在
ostream& operator<<(ostream&, Tekma const&);例程中打印 Tekma 中的其他变量。