C++
 Computer >> コンピューター >  >> プログラミング >> C++

C++ の「呼び出しに一致する関数がありません」コンパイル エラーの解決

C++ の「呼び出しに一致する関数がありません」コンパイル エラーの解決

「呼び出しに一致する関数がありません」とは、特定の関数を呼び出しているが、その関数の ID が定義されている関数の引数と一致しないことを意味します。したがって、C++ に対して「呼び出しに一致する関数がありません」というエラーが発生します。コンパイラーが一致するメソッドがないことを示す場合は、通常、関数にパラメーターを指定した場合と同様に、コンパイラーが同じ名前でメソッドを識別したことを示します。

そのため、指定された間違った型のメソッドまたは不適切なパラメータのセットを関数に渡し続ける場合です。関数定義では、コンパイラに対するメソッドの名前とその呼び出し方法を指定します。関数の内容全体が明示的に宣言されています。この記事では、C++ で「呼び出しに一致する関数がありません」というエラーがどのように表示されるかについて説明します。

クラスのオブジェクトを使用する

このシナリオでは、呼び出し中に関数パラメーターが一致しないため、参照が必要な場所にポインターを渡し、関数呼び出しで異なるクラス参照型を使用することを試みます。関数を呼び出しても、引数の関数定義が一致しない場合は、「C++ の呼び出しに一致する関数がありません」というエラーが発生します。

次に、エラーを修正する必要があります。この目的のために、関数の定義中に適切な一致パラメータを提供するだけです。コードとその詳細な説明は以下にあります。

C++ の「呼び出しに一致する関数がありません」コンパイル エラーの解決

コードの先頭に、入出力機能に使用されるライブラリ を含めます。標準の名前空間も利用します。次に、「A」という名前でクラスを初期化し、関数 setValue() public を指定しました。整数のデータ型を持つ value のパラメーターをこの関数に渡します。また、整数データ型を持つクラスの変数「value」も初期化しました。

次の行では、別の関数 setValue() を呼び出します。このメソッドは変数「value」を引数として保持します。引数として渡された値をインクリメントします。次に、main() 関数を呼び出します。引数として、整数データ型を持つ 'argc' と文字データ型の 'argv' ポインタが与えられます。 「argc」はNoです。オペレーティング システムのコードで提供されるパラメーターの一覧。 「argv」はパラメータのコレクションです。

次に、クラス「A」のオブジェクト「obj」を作成します。メソッド setValue() 関数を呼び出します。 「obj」は引数として渡されます。しかし、オブジェクトをクラスに接続しませんでした。そのため、関数 setValue() を呼び出すとエラーが返されます。これは、 setValue() 関数を呼び出すクラスがないためです。上記のコードでは、setValue() 関数の呼び出し引数内でクラス オブジェクトを渡していますが、setValue() 関数の定義をチェックインすると、渡される引数の値が整数であると想定されます。コードを終了するには、「return 0」コマンドを使用しました。ここで、上記のコードの出力を確認できます。

C++ の「呼び出しに一致する関数がありません」コンパイル エラーの解決

上記のコードを実行すると、「A への呼び出しに一致する関数がありません」というエラーが発生します。

このエラーを解決するにはどうすればよいですか?

メソッド呼び出し中にこのエラーを修正するには、適切な対応するパラメーターを関数に提供する必要があります。このエラーを解決するもう 1 つの方法は、オーバーロードされた関数ごとに異なるパラメーターを持たせることです。ここでは関数 main() の引数を変更するだけです。したがって、C++ エラーに対する「呼び出しに一致する関数がありません」は削除されます。コードとその詳細な説明は以下にあります。

C++ の「呼び出しに一致する関数がありません」コンパイル エラーの解決

標準の名前空間を使用した後、ヘッダー ファイル を導入します。 「A」という名前のクラスを構築し、その関数 setValue() をパブリックにしました。この関数は、データ型が整数の変数「value」をパラメータとして受け取ります。また、クラス内の「value」と呼ばれる整数データ型変数も初期化しました。この変数も public に設定されます。次の行では、setValue() という別の関数を呼び出します。データ型が整数の変数「value」がこの関数のパラメータとして提供されます。インプットの一つとして与えられた値を増やしていきます。

次のステップでは、main() メソッドを呼び出します。 main() 関数内では、引数として整数データ型の「argc」と文字データ型の「argv」を提供します。 「argc」は、プログラム内のオペレーティング システムによって提供されるパラメータの数を示します。 「argv」はパラメータのコレクションです。ここで、「obj」という名前のクラス「A」のオブジェクトを作成します。変数「value」を整数データ型で初期化しました。オブジェクトの setValue() メソッドを利用し、この関数のパラメータとして「値」を設定しました。

最後に「return 0」を追加してプログラムを終了します。 main() 関数には、同じデータ型の関数とその引数を入力する必要があることに注意してください。次に、その関数をそのオブジェクトに渡して返します。ここで、上記のコードの出力を確認できます。

C++ の「呼び出しに一致する関数がありません」コンパイル エラーの解決

結論

この記事では、「呼び出しに一致する関数がありません」というエラーが発生する理由とその解決方法について説明しました。このエラーを受け取るたびに、必要なメソッドのパラメータとそのデータ型を確認する必要があります。関数の引数に引数を与えるときに間違いを犯します。パラメータと関数が一致していません。一致したパラメータを指定されたメソッドに与えることが必要になる場合があります。または、同じデータ型の新しい関数を追加する必要があります。適切なパラメータを確認してプログラム内の関数に追加すると、「呼び出しに一致する関数がありません」というエラーは解決されます。

著者について

C++ の「呼び出しに一致する関数がありません」コンパイル エラーの解決

カルソム ビビ

こんにちは。私はフリーランスのライターで、普段は Linux やその他のテクノロジー関連のコンテンツを執筆しています。


  1. サイズdで作成できる十二角形の数をカウントするC++プログラム

    数dがあるとします。正方形のタイルと辺の長さが1の通常の三角形のタイルが無数にあると考えてください。これらのタイルを使用して、側面dの通常の十二角形(12辺の多角形)を形成できる方法をいくつ見つける必要があります。答えが大きすぎる場合は、結果mod998244353を返します。 ステップ これを解決するために、次の手順に従います- b := floor of d/2 - 1 c := 1 for initialize i := 2, when i < d, update (increase i by 1), do:    b := b * (floor of

  2. C++の長方形領域

    2D平面内の2つの直線状の長方形で覆われる総面積を求めたいとします。ここで、各長方形は、図に示すように、左下隅と右上隅によって定義されます。 これを解決するには、次の手順に従います- =HまたはD<=Fの場合、 return(C – A)*(D – B)+(G – E)*(H – F) 配列hを定義し、A、C、E、Gをhに挿入します 配列vを定義し、B、D、F、Hをvに挿入します h配列の並べ替えとv配列の並べ替え temp:=(h [2] – h [1])*(v [2] – v [1]) 合計:=temp 合計:=合計+(C – A