gpt4 book ai didi

C++ 重载运算符 << 以处理指针 vector

转载 作者:太空宇宙 更新时间:2023-11-04 11:44:47 24 4
gpt4 key购买 nike

我有一个指针 vector ,我正在尝试重载 ostream 运算符以使打印更容易。但是,我似乎无法调用要调用的函数。这是我的代码:

std::vector<Set*> sets;

for (int i = 0; i < sets.size(); i++) {
std::cout << sets[i] << std::endl;
}

std::ostream& operator<<(std::ostream& out, const Set* s) {
//Print set code
}

我循环遍历所有集合并通过将 sets[i] 放入 ostream 来调用特定集合进行打印,但未调用该函数。它只是打印 sets[i] 的地址。当我有一个 Set vector 时,我就开始工作了,但是当我试图将它更改为 Set* vector 时,我无法让它工作。我哪里错了?

最佳答案

重载解析是使用编译器在调用点可见的声明来完成的。你需要移动你的 operator<<在使用它的代码之上重载,或者至少是它的声明。

看,它有效:http://ideone.com/1BeACP

关于C++ 重载运算符 << 以处理指针 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20165082/

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