工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> C言語

C++コンストラクタ:デフォルト引数で柔軟なオブジェクト生成を実現

コンストラクタはクラスの特殊なメンバ関数で、オブジェクト生成時に自動的に呼び出されます。オブジェクトを値やデフォルト設定で初期化するために使用されます。

一方、C++のデフォルト引数を使用すると、関数やコンストラクタのパラメータにデフォルト値を指定できます。

デフォルト引数を持つコンストラクタ

デフォルト引数を持つコンストラクタとは、オプションのパラメータを使用してオブジェクトを生成できるコンストラクタです。パラメータにデフォルト値が提供されており、ユーザーが値を渡さない場合はそのデフォルト値が使用されます。

構文

デフォルト引数を持つコンストラクタの構文は以下の通りです:

 class ClassName { public: ClassName(parameter_Type parameter_Name = default_Value, parameter_Type2 parameter_Name2 = default_Value2); }; 

デフォルト引数を持つコンストラクタの例

以下はデフォルト引数を持つコンストラクタの例です:

 #include <iostream> using namespace std; // デフォルト引数を持つ関数 void printMessage(string message = "Hello, Tutorialspoint Learner") { cout << message << endl; } int main() { // 引数なしで関数呼び出し printMessage(); // デフォルトメッセージ "Hello, Tutorialspoint Learner" が出力 // カスタム引数で関数呼び出し printMessage("Hi, there!"); // カスタムメッセージ "Hi, there!" が出力 return 0; } 

出力

 Hello, Tutorialspoint Learner Hi, there! 

解説

複数のデフォルト引数を持つコンストラクタ

複数のデフォルト引数を持つコンストラクタでは、複数のパラメータにデフォルト値を指定できます。これにより、引数のさまざまな組み合わせを渡せるようになり、柔軟性が向上します。

例

以下は複数のデフォルト引数を持つコンストラクタの例です:

 #include <iostream> using namespace std; class Box { public: int length, width, height; // 複数のデフォルト引数を持つコンストラクタ Box(int l = 5, int w = 10, int h = 2) { // length, width, heightのデフォルト値 length = l; width = w; height = h; } void display() { cout << "Length: " << length << ", Width: " << width << ", Height: " << height << endl; } }; int main() { // 異なる数の引数でオブジェクト生成 Box box1; Box box2(15); Box box3(15, 20); Box box4(15, 20, 25); // オブジェクトの値を表示 box1.display(); box2.display(); box3.display(); box4.display(); return 0; } 

出力

 Length: 5, Width: 10, Height: 2 Length: 15, Width: 10, Height: 2 Length: 15, Width: 20, Height: 2 Length: 15, Width: 20, Height: 25 

解説

デフォルト引数を持つコンストラクタの主な特徴

通常の関数と似ていますが、オブジェクト生成時により柔軟性と利便性を提供します。主な特徴は以下の通りです。

1. パラメータのデフォルト値とオブジェクト生成の柔軟性

コンストラクタは1つ以上のパラメータにデフォルト値を持て、呼び出し側が引数を渡さない場合に使用され、複数の方法でオブジェクトを生成可能。

2. 複数のコンストラクタオーバーロードを回避

引数の組み合わせごとにコンストラクタをオーバーロードするとコードが膨らみますが、デフォルト引数なら1つのコンストラクタでさまざまなケースを自動的に処理できます。

3. デフォルト引数の順序

複数のデフォルト値パラメータがある場合、右側からデフォルト値を指定し始めたら、途中でデフォルト値のないパラメータを置くことはできません。

構文(無効な例)

 Box(int l = 1, int w); // 無効: 'l'にデフォルトがあるのに'w'にない 

4. constメンバとデフォルト引数の併用

クラスにconstメンバがある場合、コンストラクタでデフォルト引数を提供することで初期化を容易にできます。

構文

 class Box { public: const int length, width; Box(int l = 5, int w = 10) : length(l), width(w) {} }; 

このコンストラクタはデフォルト引数(length = 5, width = 10)を使用してconstメンバを初期化します。

C言語

  1. C# 面接質問トップ50 & 回答 (2021年版) – 初心者から経験豊富な開発者まで
  2. C#配列マスター:宣言、初期化、整数コレクションの操作
  3. C 言語関数マスター: 再帰とインライン関数の実践例
  4. C言語のrealloc()活用ガイド:構文、ベストプラクティス、実例
  5. C++メモリ管理の極意:newとdeleteのエキスパート活用法
  6. C#の例外処理:try/catch/finally/throwとベストプラクティス
  7. Guru99:包括的なオンラインチュートリアルとビジネスソフトウェアレビュー
  8. C#のループ完全ガイド:for、while、do-while、制御文
  9. C# while 文と do-while 文をマスターする:構文、例、ベストプラクティス
  10. C++動的メモリ管理完全解説:スタックとヒープ、new/delete
  11. C#データベース接続チュートリアル:SQL Server接続とCRUD操作の実践