지우너
생성자(constructor)와 멤버 초기화 리스트(member initializer list) 본문
요약
멤버 초기화 리스트를 사용하는 방식이 더 효율적이고 권장된다.
const 멤버 변수나 참조 멤버 변수를 초기화할 때는 반드시 이 방식을 사용해야 한다.
구조체/클래스 이름( 매개변수) : 변수1(매개변수), 변수2(nullptr), 변수3(nullptr) {}
위와 같은 방식으로 작성된다.
방법1. 대입
struct Node {
int data;
Node *prev, *next;
Node(int data){
this->data = data;
prev = nullptr;
next = nullptr;
}
};
방법2. 멤버 초기화 리스트
struct Node {
int data;
Node *prev, *next;
Node(int data) : data(data), prev(nullptr), next(nullptr) {}
};
Node(int data): 생성자 함수의 선언부. Node 클래스의 객체를 생성할 때 호출되며, int data를 매개변수로 받는다.
: (콜론): '멤버 초기화 리스트(member initializer list)'의 시작
data(data): Node 구조체의 data 멤버 변수를 생성자의 data 매개변수로 초기화한다는 의미. 비슷하게 prev(nullptr), next(nullptr)도 Node 구조체의 prev와 next라는 변수를 nullptr로 초기화하겠다는 의미이다.
{}: 생성자 본문. 비어있기 때문에 아무 작업도 하지 않음. cout << "매개변수가 data인 생성자 호출\n"; 등을 넣어 어떤 생성자가 호출되는지 볼 수도 있다.
'Programming > C++' 카테고리의 다른 글
C++ Set 사용하기 (0) | 2024.08.07 |
---|---|
C++ 클래스(Class) (0) | 2024.05.30 |
C++ Sort()함수 (0) | 2024.05.28 |
[C++] array, string, vector size 구하기 (0) | 2024.05.27 |