L'Addition et la soustraction de nombres complexes à l'aide de la classe en C++

J'ai ici un code qui est censé demander à l'utilisateur de deux ensembles de réel et de l'imaginaire des nombres.

#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;
}

Cependant, lorsque j'ai compilé le programme, beaucoup d'erreurs sont affichés (std::basic_ostream) dont je n'ai même pas obtenir.

Un autre problème que je vais avoir est la fonction nulle::Complexe d'impression. Il devrait être une condition à l'intérieur de lui-même cout. Pas de if-else. Mais je n'ai aucune idée de quoi faire.

Le programme doit s'exécuter comme ceci:

D'entrée de partie réelle de l'opérande: 5

D'entrée de partie imaginaire pour un opérande: 2 (le i de l'imaginaire ne doit pas être écrit)

D'entrée de partie réelle de l'opérande deux: 8

D'entrée de partie imaginaire de l'opérande de deux: 1 (encore une fois, je ne devrais pas être entré)

/puis il affichera l'entrée(ed) les numéros de/

(5, 2i) //cette fois, avec un je

(8, 1i)

/alors les réponses/

La somme est 13+3i.

La différence est -3, 1i. //ou -3, je

S'il vous plaît aidez-moi! Je suis nouveau en C++, et ici, dans stackoverflow et votre aide serait très appréciée. Merci beaucoup!

  • Est-ce que votre école de devoirs?
  • Lire un peu plus à propos de la surcharge d'opérateur et vous devriez être capable d'écrire votre ajouter et soustraire des fonctions correctement.
  • Oui, penartur. Je pense que j'ai fait ce que je peux, mais mes connaissances sont encore insuffisantes. J'ai besoin de conseils.
  • Le compilateur que vous utilisez? g++ peut être assez cryptique. Peut-être essayer clang++? Si non, google erreurs individuelles. Mettre de l'esprit en elle 😀
  • Bonjour, la tête en bas! J'utilise CodeBlocks. Merci!!!!
  • Pourquoi réinventer la roue? stackoverflow.com/questions/42833241/...

InformationsquelleAutor | 2012-02-16