powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / вынес дружественной функции за шаблон класса
8 сообщений из 8, страница 1 из 1
вынес дружественной функции за шаблон класса
    #33503450
duracell_2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
template <class T> class array
{
int size;
T* pT;
public:
array(int S=10):size(S)
{pT=new T[S];};
array(int S=10,T *pT_w):size(S)
{
pT=new T[S];
pT=pT_w;
};
friend ostream& operator <<(ostream&,array);
/* friend ostream& operator << (ostream& outs,array a)
{
int k;
outs<<"size="<<a.size<<"\n";
for (k=0;k<a.size;k++)
outs<<"arr["<<k<<"]="<<a.pT[k]<<"\n";
return outs;
};*///как вынести эту функцию за предел шаблона класса чтобы небыло предупреждений
};
class Number {
int i;
public:
Number (int I=0):i(I){};
friend ostream& operator << (ostream& outs,Number n)
{
int k;
outs<<"Number.i="<<n.i<<"\n";
return outs;
};
};
void main ()
{
Number d[5]={10,20,30,40,50};
array <Number> a(5,d);
clrscr();
cout<<a;

}
...
Рейтинг: 0 / 0
вынес дружественной функции за шаблон класса
    #33503658
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не уверен что понял вопрос... в общем нужно объявить функцию-шаблон

примерно вот так
Код: plaintext
1.
2.
template <class T>
 friend ostream& operator <<(ostream& o,T t);
...
Рейтинг: 0 / 0
вынес дружественной функции за шаблон класса
    #33504563
duracell_2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в моем случае когда убираешь комментарий возникает предупреждение "Warning : Functions containing for are not expanded inline" как можно избавиться от этого предупреждения
...
Рейтинг: 0 / 0
вынес дружественной функции за шаблон класса
    #33505504
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну так у вас не-template метод объявлен в h-файле - соответсвенно он трактуется как inline. либо объявите его как template либо перенесите реализацию в .cpp
...
Рейтинг: 0 / 0
вынес дружественной функции за шаблон класса
    #33506186
duracell_2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в классе array нодо написать "friend ostream& operator <<(ostream&,array<T> a);"
а в загаловке функции "template <class T> ostream& operator << (ostream& outs, array<T> a)"
...
Рейтинг: 0 / 0
вынес дружественной функции за шаблон класса
    #33506615
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Компилятор какой у тебя ?
...
Рейтинг: 0 / 0
вынес дружественной функции за шаблон класса
    #33507217
duracell_2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZivКомпилятор какой у тебя ?Borland C++ Version3.1
...
Рейтинг: 0 / 0
вынес дружественной функции за шаблон класса
    #33508435
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не староват ? Оно там вообще поддерживает шаблоны ?
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / вынес дружественной функции за шаблон класса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]