Re[2]: Перегрузка <<
От: javabear  
Дата: 19.07.04 20:38
Оценка:
Здравствуйте, GarryIV, Вы писали:

GIV>Hello, O-Sam!

GIV>You wrote on Mon, 19 Jul 2004 18:01:43 GMT:

O>> Читал книги. Видел много однотипных примеров. Везде написано делать так:


O>>
 O>> #include <iostream>
 O>> using namespace std;

 O>> class Complex
 O>> {
 O>>  double re;
 O>>  double im;
 O>> public:
 O>>  Complex (double re, double im);
 O>>  friend ostream& operator<< (ostream& s, const Complex& z);
 O>> };

 O>> Complex::Complex (double re, double im)
 O>> {
 O>>  this->re = re;
 O>>  this->im = im;
 O>> }

 O>> ostream& operator<< (ostream& s, const Complex& z)
 O>> {
 O>>  return s << '(' << z.re << ',' << z.im << ')';
 O>> }
GIV>


GIV>With best regards, Igor Evgrafov.


Не, все совсем не так
там дело в определении оператора << оно каким то образом не совпадает с задекларированным в классе friend?
Тем не менее если убрать using namespace std и везде где нодо прописать std:: то все работает
#include <iostream>
using namespace std;


class Complex
{
friend std::ostream& operator<< (std::ostream& s,const Complex& z);
double re;
double im;
public:
Complex (double re, double im);

};

Complex::Complex (double re, double im)
{
this->re = re;
this->im = im;
}

std::ostream& operator<< (std::ostream& s, const Complex& z)
{
return s << '(' << z.re << ',' << z.im << ')';
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.