Здравствуйте, Аноним, Вы писали:
А>Сразу извиняюсь за мой французкий — но в терминах я могу путаться.
А>Суть проблеммы: не могу переопределить потоки ввода вывода для шабланна класов:
А>А>#include <iostream.h>
А>template <class T>
А>class ddm
А>{
А>/*
А>*/
А>template <class T> friend ostream& operator<<(ostream& r,const ddm <T>& aout);
А>};
А>template <class T> ostream& operator<< (ostream& r, const ddm <T>& aout)
А>{
А>}
А>
А>выдает ошибки:
А>[C++ Error] cl_massiv.cpp(73): E2335 Overloaded 'operator ostream & << <char>(ostream &,const ddm<char> &)' ambiguous in this context
А>[C++ Error] cl_massiv.cpp(73): E2335 Overloaded 'operator ostream & << <char>(ostream &,const ddm<char> &)' ambiguous in this context
А>Вобщем я перерыл море инфы в сети, встречал около 5 видов записи данного переопределения — но не один у меня не заработал
А>Я делал и так
А>А>friend ostream& operator<<(ostream& r,const ddm <T>& aout);
А>
А>получая
А>[Компоновщик Error] Unresolved external 'operator <<(_STL::basic_ostream<char, _STL::char_traits<char> >&, const ddm<char>&)' referenced from C:\DOCUMENTS AND SETTINGS\ÊÎÍÑÒÀÍÒÈÍ\ÐÀÁÎ×ÈÉ ÑÒÎË\ÍÎÂÀß ÏÀÏÊÀ (6)\CL_MASSIV.OBJ
А>и вообще много как, но решения проблыммы как вы понимаете так и не нашол...
А>пс среда разработки С++Builder
template<class T>
class ddm{
//blah blah blah
template<class A> friend operator<<(ostream&,const ddm<A>&);
};
template<class T>
ostream& operator<<(ostream&,const ddm<T>&)
Интересно Вы тоже не будете понимать почему компилер ругается на такое
int a;
double a;
?