位置引数とデフォルト引数
メニューを表示するにはスワイプしてください
位置引数
位置引数は、関数のシグネチャに基づいて特定の順序で値を渡す方法。値は、関数シグネチャのパラメータリスト内の位置に従ってパラメータに関連付けられる。各引数の位置によって、対応するパラメータが決まる。
main.cpp
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
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 = true→0を返すterminate = false→ エラー回避のため非常に小さい数値で割る
terminate パラメータには デフォルト値 true が設定されているため、省略可能。計算を継続したい場合は terminate = false を指定する。
注意
すべてのデフォルト引数は、パラメータリスト内で位置引数の後に配置する必要があります。これに従わない場合、コンパイラはエラーを出します。
すべて明確でしたか?
フィードバックありがとうございます!
セクション 2. 章 1
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 2. 章 1