[解決済み】' ' への呼び出しにマッチする関数がない
2022-01-12 13:37:47
質問内容
2つの複素数間の距離を計算する関数を実装したいのですが、コードは以下の通りです。
"static double distanta (const Complex&, const Complex&);"
double Complex::distanta(const Complex &a, const Complex &b)
{
double x = a.real() - b.real();
double y = a.imag() - b.imag();
return sqrt(x * x + y * y);
}
静的関数は静的メンバにしかアクセスできず、私のクラスは静的メンバにしかアクセスできない。
double _re;
double _im;
をデータメンバとする。
メインです。
#include <iostream>
#include "complex.h"
using namespace std;
int main()
{
Complex* firstComplexNumber;
firstComplexNumber = new Complex(81, 93);
cout << "Numarul complex este: " << *firstComplexNumber << endl;
Complex* secondComplexNumber;
secondComplexNumber = new Complex(31, 19);
cout << "Distanta dintre cele doua numere" <<endl << endl;
Complex::distanta(firstComplexNumber, secondComplexNumber);
return 0;
}
実行すると、エラーが発生します。
error: no matching function for call to 'Complex::distanta(Complex*&, Complex*&)'
解決方法は?
ポインタを渡している(
Complex*
) 関数が参照を受け取るとき (
const Complex&
). 参照とポインタは全く別のものです。関数が参照引数を期待する場合、オブジェクトを直接渡す必要があります。参照は、オブジェクトがコピーされないことを意味するだけです。
関数に渡すオブジェクトを得るには、ポインタをデリファレンスする必要があります。
Complex::distanta(*firstComplexNumber, *secondComplexNumber);
あるいは、関数がポインタの引数を取るようにする。
しかし、私は上記のどちらの解決策もあまりお勧めしません。なぜなら、ここでは動的なアロケーションは必要ないからです。
delete
あなたが持っているもの
new
ed)であれば、そもそもポインターを使わない方が良いのです。
Complex firstComplexNumber(81, 93);
Complex secondComplexNumber(31, 19);
Complex::distanta(firstComplexNumber, secondComplexNumber);
関連
-
[解決済み] file(file, "rt") のエラー : complete.cases プログラム内の無効な 'description' 引数
-
[解決済み】このリポジトリで別のgitプロセスが動作しているようです。
-
[解決済み】 munmap_chunk(): 無効なポインタ
-
[解決済み】C++の<map>に相当するC#は何ですか?[重複しています]
-
[解決済み】ValueError: 入力配列を形状 (224,224,3) から形状 (224,224) にブロードキャストできませんでした。)
-
[解決済み】makefile:4。*** missing separator. 停止する
-
[解決済み】マージが終了していない(MERGE_HEADが存在する)。
-
[解決済み】Heroku + node.jsのエラー(Webプロセスが起動後60秒以内に$PORTにバインドできなかった)。
-
[解決済み】画像処理。コカ・コーラ缶」認識のためのアルゴリズム改良
-
[解決済み】派生クラスでオーバーライドされた関数が、ベースクラスの他のオーバーロードを隠してしまうのはなぜですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
非常に詳細な2つのシェルコードの例
-
パスワード入力を非表示にする InstallShield スクリプト
-
linux シェル学習ノート 4日目
-
[解決済み】主成分分析:colMeans(x, na.rm = TRUE)のエラー:'x'は数値でなければなりません。
-
[解決済み】Java JDK - doubleからintへの非可逆変換の可能性
-
[解決済み】マージが終了していない(MERGE_HEADが存在する)。
-
[解決済み】Nullableオブジェクトは値を持たなければならない?
-
[解決済み】count()パラメータは配列かlaravelのcountableを実装したオブジェクトでなければならない。
-
[解決済み】Heroku + node.jsのエラー(Webプロセスが起動後60秒以内に$PORTにバインドできなかった)。
-
[解決済み】ログアウトと再ログインをせずに.bashrcの設定を再読み込みする方法とは?