Re: Потоки ввода вывода в шаблоне классов - проблемма :(
От: Аноним  
Дата: 24.12.07 22:02
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Сразу извиняюсь за мой французкий — но в терминах я могу путаться.


А>Суть проблеммы: не могу переопределить потоки ввода вывода для шабланна класов:




А>
А>#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;
?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.