C++ cin i cout

Magog

Početnik
Poruka
36
Ovako stvari stoje, ja se ucim C++ i evo na pocetku naidjoh na jedan problemcic. Ukucam ovaj kod, koji je primer iz neke knjige, uneo sam novine s ciljem da U/I podataka izvodim preko objekata klase 'istreajm' ali nesto ne valja sa cin-om, dok je sa cout-om sve OK jer sam uneo podatke preko konstruktora. Naime, kad kompajlira fajl javlja mi gresku:
D:\MyProjects\kompleksni brojevi\kompleks.cpp(63) : error C2679: binary '>>' : no operator defined which takes a right-hand operand of type 'class Complex (__cdecl *)(void)' (or there is no acceptable conversion)
i ovo pokazuje na liniju koda gde je 'cin'
Sta moze da bude?

include <iostream.h>

//Klasa : Complex

class Complex {

public:
Complex (float real, float imag);

Complex add (Complex);
Complex sub (Complex);

float Re();
float Im();

void print();

friend istream & operator>> (istream &d, Complex &t);
friend ostream & operator<< (ostream &d, const Complex &t);

private:
float real, imag;
};


// definicija funkcija


Complex::Complex (float r, float i) {real=r; imag=i;}


Complex Complex::add (Complex c) {
return Complex(real+c.real, imag+c.imag);
}


Complex Complex::sub (Complex c) {
return Complex(real-c.real, imag-c.imag);
}

float Complex::Re() {return real;}
float Complex::Im() {return imag;}

void Complex::print() {
cout<<"real: "<<real<< "imag: "<< imag;
}

istream & operator>>(istream &d, Complex &t)
{ float re,im; d>>re>>im; return d;}

ostream & operator<<(ostream &d, const Complex &t)
{ return d<<"("<<t.real<<","<<t.imag<<")\n";}


// Glavni program

void main () {


Complex cx();
cin>>cx;
cout<<cx;


}
 
probaj unutar klase:


istream& operator>>(istream &d, Complex &t)
{ return d>>t.real>>t.imag;}

ostream& operator<<(ostream &d, const Complex &t)
{ return d<<"("<<t.real<<","<<t.imag<<")\n";}



ili sa (van klase) :

inline istream& ........
inline ostream& ..........

isto.
 

Back
Top