Я работал над этим школьным заданием.Назначение подсказало нам сделать объект, у которого был перегружен оператор вывода (<<).Вот мой код: </p>
#include <ostream>
using namespace std;
template <class T>
class CustomObject {
string print() {
string text = "";
for (int i = 0; i < num_items(); i++) {
text += queue[i];
text += " | \n";
}
return text;
}
friend std::ostream& operator <<(std::ostream &output, CustomObject &q) {
output << "" << q.print();
return output;
}
}
Итак, я создаю экземпляр этого объекта следующим образом:
CustomObject<int> co();
и вызываю его метод вывода:
std::cout << co();
Что неизбежно вызоветметод print и верните строку в поток вывода по умолчанию.
Но в моей консоли / отладчике нет видимых выводов.
Чего мне здесь не хватает?
PSэто не полный класс, он универсален из-за нескольких других методов и функциональных возможностей, которые здесь не обязательно показывать.
PPS переменные num_items () и queue являются частью упомянутого остальныхэтот класс является объектом PriorityQueue.Итак, очередь - это массив указанного типа (отсюда и общее объявление), а num_items () просто возвращает счетчик массива.