C++ プログラミングの既定の引数 (パラメーター)
C++ プログラミングの既定の引数 (パラメーター)
このチュートリアルでは、例を使用して C++ のデフォルト引数とその動作について学習します。
C++ プログラミングでは、関数パラメーターのデフォルト値を指定できます。
デフォルトの引数を持つ関数が引数を渡さずに呼び出された場合、デフォルトのパラメータが使用されます。
ただし、関数の呼び出し中に引数が渡された場合、デフォルトの引数は無視されます。
デフォルト引数の働き
<図>上の画像からデフォルト引数の動作を理解できます:
<オール>temp()
の場合 が呼び出されると、両方のデフォルト パラメータが関数によって使用されます。temp(6)
のとき が呼び出されると、最初の引数は 6
になります 2 番目のパラメーターにはデフォルト値が使用されます。temp(6, -2.3)
のとき が呼び出されると、両方のデフォルト パラメータがオーバーライドされ、結果として i = 6
になります。 および f = -2.3
.temp(3.4)
のとき が渡されると、最初の引数を渡さないと 2 番目の引数を渡すことができないため、関数は望ましくない動作をします。 したがって、
3.4
最初の引数として渡されます。最初の引数は int
と定義されているため 、実際に渡される値は 3
です .例:デフォルト引数
#include <iostream>
using namespace std;
// defining the default arguments
void display(char = '*', int = 3);
int main() {
int count = 5;
cout << "No argument passed: ";
// *, 3 will be parameters
display();
cout << "First argument passed: ";
// #, 3 will be parameters
display('#');
cout << "Both arguments passed: ";
// $, 5 will be parameters
display('$', count);
return 0;
}
void display(char c, int count) {
for(int i = 1; i <= count; ++i)
{
cout << c;
}
cout << endl;
}
出力
No argument passed: *** First argument passed: ### Both arguments passed: $$$$$
このプログラムの仕組みは次のとおりです。
<オール>display()
引数を渡さずに呼び出されます。この場合、display()
両方のデフォルト パラメータ c = '*'
を使用します と n = 1
.display('#')
引数を 1 つだけ指定して呼び出されます。この場合、最初は '#'
になります . 2 番目のデフォルト パラメータ n = 1
保持されます。display('#', count)
両方の引数で呼び出されます。この場合、デフォルトの引数は使用されません。関数定義自体でデフォルトのパラメーターを定義することもできます。以下のプログラムは上記のものと同等です。
#include <iostream>
using namespace std;
// defining the default arguments
void display(char c = '*', int count = 3) {
for(int i = 1; i <= count; ++i) {
cout << c;
}
cout << endl;
}
int main() {
int count = 5;
cout << "No argument passed: ";
// *, 3 will be parameters
display();
cout << "First argument passed: ";
// #, 3 will be parameters
display('#');
cout << "Both argument passed: ";
// $, 5 will be parameters
display('$', count);
return 0;
}
覚えておくべきこと
<オール>
// Invalid
void add(int a, int b = 3, int c, int d);
// Invalid
void add(int a, int b = 3, int c, int d = 4);
// Valid
void add(int a, int c, int b = 3, int d = 4);
// Invalid code
int main() {
// function call
display();
}
void display(char c = '*', int count = 5) {
// code
}
C言語