Addition und Subtraktion von komplexen zahlen mit Hilfe der Klasse in C++

Ich habe hier einen code, der angeblich auf bitten der Benutzer zwei Sätze von reellen und imaginären zahlen.

#include <iostream>

using namespace std;

class Complex {
    public:
        double r;
        double i;
    public:
        Complex();
        void add(Complex, Complex);
        void subtract(Complex, Complex);
        void print();
};



Complex::Complex() {
    r = i = 0;
}

void Complex::add (Complex op1, Complex op2) {
    r = op1.r+op2.r;
    i = op1.i+op2.i;
}

void Complex::subtract (Complex op1, Complex op2) {
     r = op1.r-op2.r;
     i = op1.i-op2.i;
}

void Complex::print () {
    cout << r << i;
}

int main () {
    Complex operand1, operand2, result;
    cout << "Input real part for operand one: " << endl;
    cin >> operand1.r;
    cout << "Input imaginary part for operand one: " << endl;
    cin >> operand1.i;
    cout << "Input real part for operand two: " << endl;
    cin >> operand2.r;
    cout << "Input imaginary part for operand two: " << endl;
    cin >> operand2.i;
    result.add(operand1, operand2);
    cout << "The sum is " << result.add << endl;
    result.subtract(operand1, operand2);
    cout << "The difference is " << result.subtract << endl;
}

Allerdings, wenn ich das Programm kompiliert, viele Fehler angezeigt werden (std::basic_ostream), die ich gar nicht bekommen.

Weiteres Problem das ich habe ist in der Funktion void::Komplexe print. Es sollte ein Zustand, innen cout selbst. Keine if-else. Aber ich habe keine Ahnung, was zu tun ist.

Das Programm muss laufen wie diese:

Eingabe realer Teil für den Operanden ein: 5

Eingabe Imaginärteil für den Operanden: 2 (die ich für imaginäre sollte nicht geschrieben werden)

Eingabe Realteil für zwei Operanden: 8

Eingabe Imaginärteil für zwei Operanden: 1 (wieder, ich sollte nicht eingegeben werden)

/dann wird es drucken Sie den Eingang(ed) zahlen/

(5, 2i) //dieses mal mit einem i

(8, 1i)

/dann die Antworten/

Die Summe ist 13+3i.

Die Differenz ist -3, 1i. //oder -3, i

Bitte helfen Sie mir! Ich bin neu in C++ und hier bei stackoverflow und Ihre Hilfe wäre sehr geschätzt. Ich danke Ihnen sehr!

  • Ist das Ihre Schule, die Hausaufgaben zu machen?
  • Lesen Sie mehr über operator-überladung, und Sie sollten in der Lage sein, zu schreiben addieren und subtrahieren funktioniert einwandfrei.
  • Ja, penartur. Ich denke, ich habe getan, was ich kann, aber mein wissen ist noch ausständig. Ich brauche Führung.
  • Welche compiler verwenden Sie? g++ kann sehr kryptisch. Vielleicht versuchen clang++? Wenn nicht, google individuelle Fehler. Setzen Sie irgendein Geist in Sie 😀
  • Hallo, auf den Kopf gestellt! Ich benutze CodeBlocks. Danke!!!
  • Warum das Rad neu erfinden? stackoverflow.com/questions/42833241/...

InformationsquelleAutor | 2012-02-16
Schreibe einen Kommentar