Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Komplexe Zahlen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
08.11.2004, 18:50 Uhr
rejo



Hey!

Also hab ein Programm geschriebn und da kommt ein Fehler den ich irgendwie nicht finden kann.. :/


C++:
//complex.h
#ifndef _COMPLEX_
#define _COMPLEX_
#include <iostream>

class Complex
{
    private:
        double a,b;

    public:
        Complex();
        Complex(double,double);
        Complex(Complex &);
        ~Complex();
        
        double getA() { return a; }
        double getB() { return b; }

        friend Complex operator +(Complex const &a, Complex const &b);
        friend Complex operator *(Complex const &a, Complex const &b);
        Complex operator +=(Complex const &b);
        

};

std::ostream &operator <<(std::ostream &o, Complex &a);

#endif




C++:
//complex.cpp
#include <iostream>
#include "complex.h"

using namespace std;

Complex::Complex()                            : a(0), b(0) { }
Complex::Complex(double x, double y)        : a(x), b(y) { }
Complex::Complex(Complex &x)                : a(x.a), b(x.b) { }

Complex::~Complex() { }

Complex operator +(Complex const &a, Complex const &b)
{
    Complex c;
    c.a = a.a + b.a;
    c.b = a.b + b.b;

    return c;
}

Complex operator *(Complex const &a, Complex const &b)
{
    Complex c;
    c.a = a.a * b.a;
    c.b = a.b * b.b;

    return c;
}

Complex Complex::operator +=(Complex const &b)
{
    Complex c;
    c.a = c.a + b.a;
    c.b = c.b + b.b;

    return c;
}

std::ostream &operator <<(std::ostream &o, Complex &a)
{
    o << a.getA() << "+" << a.getB() << "*i" << endl;
    return o;
}




C++:
// main.cpp
#include <iostream>
#include "complex.h"

using namespace std;

int main()
{
    Complex a;
    Complex b(3.5333,22.52552);
    Complex c(b);

    cout << "b + c = " << b+c << endl;
    cout << "b = b + c = " << b+=c << endl;
    cout << "b * c = " << b*c << endl;

    return 0;
}




Da kommt der Fehler:

error C2678: binary '<<' : no operator defined which takes a left-hand operand of type 'class Complex' (or there is no acceptable conversion)

Jo ich hab immer und immer wieder diese Fehler und hab keine Ahnung woran das liegen kann... ???

Dieser Post wurde am 08.11.2004 um 19:04 Uhr von rejo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
08.11.2004, 19:23 Uhr
0xdeadbeef
Gott
(Operator)


<< bindet stärker als +=. Schreib

C++:
    cout << "b = b + c = " << (b+=c) << endl;


...dann müsste das gehen.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
08.11.2004, 19:31 Uhr
rejo



Dankeschön
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: