Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ 位置引数とデフォルト引数 | 関数引数の仕様
C++関数

book位置引数とデフォルト引数

メニューを表示するにはスワイプしてください

位置引数

位置引数は、関数のシグネチャに基づいて特定の順序で値を渡す方法。値は、関数シグネチャのパラメータリスト内の位置に従ってパラメータに関連付けられる。各引数の位置によって、対応するパラメータが決まる。

main.cpp

main.cpp

copy
1234567891011121314151617181920
#include <iostream> // Function that takes two positional arguments float divide(float a, float b) { if (b == 0) return 0; return a / b; } int main() { float x = 8; float y = 4; // Calling the 'divide' function with two positional arguments float result = divide(x, y); std::cout << result << std::endl; }

小さな実験を行うことができる。関数に渡す引数の順序を変更してみる(divide (y, x)divide(x, y) の代わりに使用)。すると、結果が変化することがわかる。これがまさに位置引数の本質であり、関数にパラメータを渡す順序が重要であり、結果に直接影響する

デフォルト引数

デフォルト引数は、関数パラメータに既定値を割り当てる機能。関数呼び出し時にすべての引数が指定されない場合、不足している引数にはデフォルト値が使用される。デフォルト値を設定するには、関数宣言内でパラメータに直接値を指定する。

main.cpp

main.cpp

copy
12345678910111213141516171819202122
#include <iostream> // Default value is set for the third parameter float divide(float a, float b, bool terminate = true) { if (b == 0) { if (terminate) return 0; return a / 0.000001; // Prevent crash by using a very small number } return a / b; } int main() { std::cout << divide(10, 2) << std::endl; // Normal division std::cout << divide(10, 0) << std::endl; // Default behavior (error) std::cout << divide(10, 0, false) << std::endl; // Forced division }

divide() 関数は、1つの数値を別の数値で割る。 分母(b)がゼロの場合

  • terminate = true0 を返す
  • terminate = false → エラー回避のため非常に小さい数値で割る

terminate パラメータには デフォルト値 true が設定されているため、省略可能。計算を継続したい場合は terminate = false を指定する。

Note
注意

すべてのデフォルト引数は、パラメータリスト内で位置引数の後に配置する必要があります。これに従わない場合、コンパイラはエラーを出します。

question mark

位置引数とデフォルト引数を正しく使用している関数宣言はどれですか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 2.  1

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 2.  1
some-alt