[C++]初期化リスト
📌 1.初期化リスト
例1に示すように、作成者内部でレプリケーションを初期化するときに、デバッガ作成者を呼び出してから代入する.
ただし、例2に示すように、[初期化リスト](Initialization List)では、ジェネレータの呼び出し時にメンバー変数を同時に初期化できます.
初期化リストは次のとおりです.
(클래스 이름)(자료형 인자 1, 자료형 인자 2, ...) : (멤버 변수 1)(인자 1), (멤버 변수 2)(인자 2), ... {}
例1(レプリケーションの初期化)
class Date {
private:
int year;
int month;
int day;
public:
Date() {
year = 2021;
month = 8;
day = 25;
}
Date(int _year, int _month, int _day) {
year = _year;
month = _month;
day = _day;
}
例2(直接初期化、制服初期化)
class Date {
private:
int year;
int month;
int day;
public:
Date() : year(2021), month(8), day(25) {}
Date(int year, int month, int day) : year(year), month(month), day(day) {}
// 멤버 변수와 인자의 이름이 같아도 정상적으로 작동
📌 2.初期化リストを使用する必要がある
メンバー変数に定数変数とReference変数を同時に宣言して初期化する必要がある場合は、初期化リストを使用する必要があります.
class Date {
private:
const int year;
int month;
int day;
public:
Date() : year(2021), month(8), day(25) {} // 가능
Date() // 불가능
{
year = 2021; // 상수 변수에 대입할 수 없음
month = 8;
day = 25;
}
また、変数としてユーザ定義クラス(例えばint
、double
などの非元データ型)を使用する場合、初期化リストを使用することは、借用操作を実行するよりも効率的に初期化することができる.Reference
この問題について([C++]初期化リスト), 我々は、より多くの情報をここで見つけました https://velog.io/@leesu1012/C-초기화-리스트Initialize-Listテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol