エラーメッセージ
C2280 'std::basic_ostream<char,std::char_traits<char>>::basic_ostream(const std::basic_ostream<char,std::char_traits<char>> &)': 削除された関数を参照しようとしています
どうやらクラス型オブジェクトの定義・宣言に問題があるようなのですが、どう修正すればよいのか分かりませんでしたので教えていただきたいです。
source
1#include <iostream> 2#include "Complex.h" 3 4using namespace std; 5 6int main() 7{ 8 double re, im; 9 10 cout << "aの実部 : "; cin >> re; 11 cout << "aの虚部 : "; cin >> im; 12 Complex a(re, im); 13 14 cout << "bの実部 : "; cin >> re; 15 cout << "bの虚部 : "; cin >> im; 16 Complex b(re, im); 17 18 Complex c = -a + b; 19 20 b += 2.0; 21 c -= Complex(1.0, 1.0); 22 Complex d(b.get_re(), c.get_im()); 23 24 cout << "a = " << a << '\n'; 25 cout << "b = " << b << '\n'; 26 cout << "c = " << c << '\n'; 27 cout << "d = " << d << '\n'; 28 29 cout << a; 30} 31
header
1コード#pragma once 2 3#include <iostream> 4 5 6//====複素数クラス====// 7class Complex { 8 double re; //実部 9 double im; //虚部 10 11public: 12 Complex(double r = 0, double i = 0) : re(r), im(i) { } //コンストラクタ 13 14 double get_re() const{ return re; } //実部を返す 15 double get_im() const{ return im; } //虚部を返す 16 17 Complex operator+() const { return *this; } //単項+演算子 18 Complex operator-() const { return Complex(-re, -im); } //単項-演算子 19 20 //---- 複合代入演算子+= ----// 21 Complex& operator+=(const Complex& x) { 22 re += x.re; 23 im += x.im; 24 return *this; 25 } 26 27 //---- 複合代入演算子-= ----// 28 Complex& operator-=(const Complex& x) { 29 re -= x.re; 30 im -= x.im; 31 return *this; 32 } 33 34 //---- 等価演算子== ----// 35 friend bool operator==(const Complex& x, const Complex& y) { 36 return x.re == y.re || x.im == y.im; 37 } 38 39 //---- 等価演算子!= ----// 40 friend bool operator!=(const Complex& x, const Complex& y) { 41 return !(x == y); 42 } 43 44 //---- 2項+演算子 ----// 45 friend Complex operator+(const Complex& x, const Complex& y) { 46 return Complex(x.re + y.re, x.im + y.im); 47 } 48 49 friend Complex operator+(double x, const Complex& y) { 50 return Complex(x + y.re, y.im); 51 } 52 53 friend Complex operator+(const Complex& x, double y) { 54 return Complex(x.re + y, x.im); 55 } 56}; 57 58//---- 出力ストリームsにxを挿入 ----// 59inline std::ostream& operator<<(std::ostream s, const Complex& x) 60{ 61 return s << '(' << x.get_re() << ", " << x.get_im() << ')'; 62}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/09 07:39