c++初心者です。
初歩的な質問なのかもしれませんが、調べてもよくわからず質問してしまいました。
operatorの意味や使い方についても教えていただけると幸いです。
よろしくお願いします><
###前提・実現したいこと
operatorをつかって複素数の計算を行いたいです。
###発生している問題・エラーメッセージ
1_7.cpp:10:40: error: ‘Complex Complex::operator-(Complex, Complex)’ must take either zero or one argument 1_7.cpp:15:41: error: ‘Complex Complex::operator*(Complex, Complex)’ must take either zero or one argument 1_7.cpp: In function ‘int main()’: 1_7.cpp:36:14: error: no match for ‘operator-’ in ‘c - b’ 1_7.cpp:38:14: error: no match for ‘operator*’ in ‘a * b’
###該当のソースコード
#include <iostream> class Complex{ private: double real; //実部 double imag; //虚部 public: Complex(){real=0.0; imag=0.0;} Complex(double r, double i){real=r; imag=i;} Complex operator-(Complex a,Complex b){ double r=a.re()-b.re(); double i=a.im()-b.im(); return Complex(r.i); } Complex operator*(Complex a, Complex b){ double r=a.re()*b.re(); double i=a.im()*b.im(); return Complex(r.i); } ~Complex(){} Complex(double r){real=r;imag=0;} double re() const{return real;} //実部を取り出す double im() const{return imag;} //虚部を取り出す void set_re(double r){real=r;} //実部を指定 void set_im(double i){imag=i;} //虚部を指定 void print(std::ostream& os) const{ //出力 os << real << "+" << imag << "i"; } }; int main(void){ Complex a(1.00, 2.00); Complex b(3.00, 4.00); Complex c(2.35, 5.32); Complex s=c-b; s.print(std::cout); std::cout << std::endl; Complex t=a*b; t.print(std::cout); std::cout << std::endl; return 0; }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。