▣ 안녕하세요. 이번장에서는 클래스에 생성자에 대해 공부해보도록 하겠습니다.
생성자는 클래스가 객체로 생성될 때(정의할 때) 자동으로 실행되는 함수(생성자)라고 생각하시면 됩니다.
생성자는 오직 한 번만 실행합니다.
생성자 함수의 이름은 클래스 이름과 동일하게 작성해야 합니다.
생성자 함수의 반환형(리턴 타입)을 선언하지 않습니다.
단 함수에 매개변수는 넣을 수 있습니다.
▣ 생성자를 쓰는 이유는 객체가 생성될 때 필요한 초기화 작업을 하기 위함입니다.
이제 생성자를 코드로 공부해보겠습니다.
▣ 생성자 함수는 Calculator::Calculator()처럼 클래스와 동일하게 이름을 지정해주면 됩니다.
여기서 중요한 건 일반 함수와 다르게 반환형이 없는 점 주의해주세요.
코드를 다 작성하셨다면 이제 메인 함수에서 Calculator cal;로 객체를 정의 후 디버그로 실행을 해보겠습니다.
▣ 실행하면 생성자 함수가 한번 호출되는 걸 확인할 수 있습니다.
그럼 생성자로 멤버 변수 값도 초기화할 수 있겠죠?
▣ 또한 이렇게 Calculator::Calculator(int num) 생성자에 매개변수를 선언해서 사용할 수도 있습니다.
매개변수 부분을 다 추가하고 메인 함수에서 객체 정의합니다.
Calculator cal(10)처럼 함수에 매개변수 값을 넣고 디버그를 하면
매개변수를 전달해 생성자가 한번 호출하는 걸 확인할 수 있습니다.
▣ 이번에는 생성자 위임에 대해 공부하겠습니다.
위임라는 말이 어려울 수 있지만 쉽게 이야기하면 화살표에서 이야기하듯이
자신에 함수를 호출을때 다른 함수를 먼저 호출하는 걸 의미합니다.
다시 말해 다른 생성자 함수를 먼저 호출한다고 생각하시면 됩니다.
그럼 왜 복잡하게 보이는데 왜 이렇게 위임생성자를 생성할까요?
그건 생성자 함수이름이 동일하고 생상자 함수가 비슷한 코드가 있을 때
내가 어떤걸 먼저 실행하고 코드를 이어서 진행할지 틀을 잡기 위함입니다.
이 말은 너무 어렵겠지만 나중에 우리가 클래스를 이용해서 객체를 생성할 때 하나하나 훈련하면서 연습하면 됩니다.
그리고 코드에서 주의해야할껀 Calculator::Calculator() : Calculator(0) {}// 위임할 생성자를 지정할 때
: Calculator(0) {} 콜론을 넣는 점
그리고 Calculator cal2(10)로 객체를 직접 지정했을때 타깃을 내가 매개변수가 있는 생성자 함수로 호출한다는 점 꼭 직접 코드를 작성하고 디버그를 하면서 확인해 주세요.
'[ C++ ] > - C++ 문법공부' 카테고리의 다른 글
C++ 6장 [클래스4] (0) | 2022.10.12 |
---|---|
C++ 5장 [클래스3] (0) | 2022.10.07 |
C++ 3장 [클래스1] (0) | 2022.09.30 |
C++ 2장 [using 지시어] (0) | 2022.08.24 |
C++ 1장 [출력, 네임스페이스] (0) | 2022.07.21 |
댓글