생성자
클래스로부터 객체가 생성될 때 자동으로 호출되는 특별한 멤버함수입니다.
생성자는 리턴값이 없습니다.
생성자도 멤버 함수이기 때문에, 먼저 클래스에 선언을 해줘야 합니다.
위와 같이 생성자가 객체가 생성됨과 동시에 실행되는 것을 볼 수 있습니다.
생성자 오버로드
생성자 또한 일반 함수처럼 인수의 개수와 타입을 다르게 해서 오버로드를 할 수 있습니다.
생성자를 오버로드하고 객체를 생성했을 때 조건에 맞는 생성자가 호출되었습니다.
생성자를 정의하지 않는 경우
클래스에 생성자를 만들지 않는 경우에는 컴파일러가 빈 생성자를 만들어서 호출합니다. 이 생성자를 "기본 생성자"라고 합니다. 이 생성자는 아무 일도 하지 않습니다.
단, 하나라도 생성자가 정의되어 있을 경우, 이 기본 생성자는 만들어지지 않습니다. 따라서, 인수가 있는 생성자를 정의하게 되면, 인수가 없는 생성자도 정의를 해두는 것이 좋습니다.
객체 배열
클래스 또한 새로운 타입이므로 배열을 만들 수 있습니다.
배열을 만드는 2가지 방법을 알아보겠습니다.
첫번째 방법
배열을 만들 때 초기자와 생성자를 사용해서 초기화와 동시에 객체를 생성합니다.
두번째 방법
초기자를 사용하지 않고 배열을 선언한는 방법입니다. 반드시 인수가 없는 생성자가 호출됩니다. 인수가 있는 생성자가 정의되어 있으면, 기본 생성자가 호출되지 않기 때문에 인수가 없는 생성자를 반드시 따로 정의해야 합니다.
기본 인수를 사용해 생성자 단순화하기
클래스에 생성자를 선언할 때 인수에 기본 인수를 지정해 놓으면, 생성자를 정의할 때는 인수를 적지 않습니다.
그런 다음, 인수를 전달하지 않으면서 객체를 생성하면 기본 인수가 대입되어 객체가 생성됩니다.
'C++' 카테고리의 다른 글
[20] 상속 (0) | 2021.05.06 |
---|---|
[19] 정적 멤버 (0) | 2021.05.04 |
[17] 인수와 객체 (0) | 2021.05.02 |
[16] 접근 제한 (0) | 2021.05.02 |
[15] 클래스 (0) | 2021.05.02 |