【发布时间】:2011-05-29 14:59:36
【问题描述】:
我一直在做这项学校作业。赋值告诉我们创建一个输出操作符(
#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();
这将不可避免地调用打印方法,并将字符串返回到默认输出流。
但是,我的控制台/调试器中没有可见的输出。
我在这里错过了什么?
PS 这不是完整的类,它是通用的,因为这里没有必要显示其他几个方法和功能。
PPS num_items() 和queue 变量是说rest 的一部分,这个类是一个PriorityQueue 对象。因此,queue 是一个指定类型的数组(因此是泛型声明),而 num_items() 只返回数组的计数。
【问题讨论】:
标签: c++ generics overloading