본문 바로가기
[ C++ ]/- C++ 문법공부

C++ 4장 [클래스2]

by MRG 2022. 10. 6.
728x90
반응형

▣ 안녕하세요. 이번장에서는 클래스에 생성자에 대해 공부해보도록 하겠습니다.

생성자는 클래스가 객체로 생성될 때(정의할 때) 자동으로 실행되는 함수(생성자)라고 생각하시면 됩니다. 

생성자는 오직 한 번만 실행합니다. 

생성자 함수의 이름은 클래스 이름과 동일하게 작성해야 합니다.

생성자 함수의 반환형(리턴 타입)을 선언하지 않습니다.

단 함수에 매개변수는 넣을 수 있습니다.

 

▣ 생성자를 쓰는 이유는 객체가 생성될 때 필요한 초기화 작업을 하기 위함입니다.
이제 생성자를 코드로 공부해보겠습니다.

 

728x90

▣ 생성자 함수는 Calculator::Calculator()처럼 클래스와 동일하게 이름을 지정해주면 됩니다. 

여기서 중요한 건 일반 함수와 다르게 반환형이 없는 점 주의해주세요. 

코드를 다 작성하셨다면 이제 메인 함수에서 Calculator cal;로 객체를 정의 후 디버그로 실행을 해보겠습니다.

 

▣ 실행하면  생성자 함수가 한번 호출되는 걸 확인할 수 있습니다. 

그럼 생성자로 멤버 변수 값도 초기화할 수 있겠죠?

 

▣ 또한 이렇게 Calculator::Calculator(int num) 생성자에 매개변수를 선언해서 사용할 수도 있습니다.

매개변수 부분을 다 추가하고 메인 함수에서 객체 정의합니다.

Calculator cal(10)처럼 함수에 매개변수 값을 넣고 디버그를 하면 

매개변수를 전달해 생성자가 한번 호출하는 걸 확인할 수 있습니다.

 

 

▣ 이번에는 생성자 위임에 대해 공부하겠습니다.

위임라는 말이 어려울 수 있지만 쉽게 이야기하면 화살표에서 이야기하듯이 

자신에 함수를 호출을때 다른 함수를 먼저 호출하는 걸 의미합니다.

다시 말해 다른 생성자 함수를 먼저 호출한다고 생각하시면 됩니다. 

그럼 왜 복잡하게 보이는데 왜 이렇게 위임생성자를 생성할까요?

그건 생성자 함수이름이 동일하고 생상자 함수가 비슷한 코드가 있을 때

내가 어떤걸 먼저 실행하고 코드를 이어서 진행할지 틀을 잡기 위함입니다.

이 말은 너무 어렵겠지만 나중에 우리가 클래스를 이용해서 객체를 생성할 때 하나하나 훈련하면서 연습하면 됩니다. 

그리고 코드에서 주의해야할껀 Calculator::Calculator() : Calculator(0) {}// 위임할 생성자를 지정할 때  

: Calculator(0) {} 콜론을 넣는 점

그리고 Calculator cal2(10)로 객체를 직접 지정했을때 타깃을 내가 매개변수가  있는 생성자 함수로 호출한다는 점 꼭 직접 코드를 작성하고 디버그를 하면서 확인해 주세요.

 

 

728x90
반응형

'[ 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

댓글