1
template <typename T> class Queue
{
template<typename T> ostream& operator<< (ostream& print, const Queue <T>& x)
{
print<<"\nThe elements are as : \n";
if(q.f!=-1)
{
int fr=q.f,rr=q.r;
while(fr<=rr)
print<<q.q[fr++]<<" <- ";
}
print<<endl;
}
//other stuffs
};
In main():
Queue<int> q(n); //object creation
cout<<q; //calling the overloaded << function
그것은 내게 다음 오류주고
: 사용하기 위해서는템플릿으로 << 템플릿 오버로드 : 다음 오류가 발생하는 이유는 무엇입니까?
C:\Users\user\Desktop\PROGRAMS\queue_using_classes.cpp|16|error: declaration of 'class T'|
C:\Users\user\Desktop\PROGRAMS\queue_using_classes.cpp|3|error: shadows template parm 'class T'|
C:\Users\user\Desktop\PROGRAMS\queue_using_classes.cpp|16|error: 'std::ostream& Queue<T>::operator<<(std::ostream&, const Queue<T>&)' must take exactly one argument
'섀도우 템플릿 parm'class T''는 그걸로 불분명합니까? – tkausl
그 오류가 무엇인지 모르겠습니다. 템플릿과 함께 << 연산자를 오버로드하려고했습니다. –
"그림자"의 의미를 이해합니까? –