![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| centab |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 22.4.2006 Репутация: нет Всего: нет |
При компиляции возникает ошибка в строке описания заголовка перегрузки функции operator<<
Из-за чего это происходит? что здесь не так. #include <iostream> using namespace std; template <class type1, class type2> class telo{ type1 a,b,c; // ??????, ????? ? ?????? ???? type2 dens; // ????????? ???? public: telo(type1 aa=1, type1 bb=1, type1 cc=1, type2 d=1):a(aa),b(bb),c(cc),dens(d){} double volume(void){return a*b*c*dens;} bool operator< (telo& q){ if(this->volume()>q.volume()) return false; return true; } friend ostream& operator<< (ostream& out, telo& t); }; ostream& std::operator<< (ostream& out, telo& t){ out<<"parametres of objects:"<<endl; out<<"width="<<t.a<<endl; out<<"length="<<t.b<<endl; out<<"height="<<t.c<<endl; out<<"density="<<t.dens<<endl<<endl; return out; } int main (){ telo <int,double> a(1,2,3,4.5); return 0; } |
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
||||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 8 Всего: 146 |
А так? У меня работает Это сообщение отредактировал(а) Romikgy - 3.5.2006, 13:48 -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| centab |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 22.4.2006 Репутация: нет Всего: нет |
Так работает, спасибо.
Но есть вопрос: дружественная функция описана в классе? и в конце стоит ";"? |
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
Ты не можешь сам объявлять что-то в пространстве имен std. Можно и вне. Дело вкуса. В принципе не нужно. Наверно могут возникнуть проблемы с переносимостью. |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
хочешь определить вне надо предварительно объявить шаблон функции-друга
-------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |