此原型与定义不符。我如何解决它?我在b.c.上扔了一个const。我认为可能会这样做。但是不要去
我知道它在定义中需要模板指示符,即使它不使用模板...因为这是以前的错误。
// Prototype
template <class T> class dynamic_array
{
public:
void print_operator(ostream)const;
};
// Definition
template <class T> void dynamic_array<T>::print_operator(ostream &os=cout)const
{
for (int i = 0; i < size; i++) os << array[i] << endl;
}
答案 0 :(得分:4)
答案 1 :(得分:2)
您在一个地方ostream
,在另一个地方ostream&
。你应该在两个地方都有ostream&
:
template <class T> class dynamic_array
{
public:
void print_operator(ostream&)const;
};
答案 2 :(得分:2)
您正在使用引用,因此请将print_operator()
替换为:
void print_operator(ostream&)const;
哦,size
和array
必须在别处宣布。
答案 3 :(得分:1)
您的声明需要ostream
,但您的定义使用ostream&
。