메뉴 건너뛰기

C++ 기초 - 기본 생성자(Default Constructor)

Eugene 2019.12.21 01:58 조회 수 : 1435

Class를 좀 더 상세하기 들어가기 전에, 기본 생성자에 관하여 알아보자.

 

https://www.eugeneprogram.com/xe/board_SFDa73/403

 

위 글에서 우리는 

 

 GradeBook myGradeBook;

 

객체의 변수명 오른쪽에 중괄호({})가 없는 경우를 보았다.

이 때, C++는 자동으로 클래스의 기본 생성자를 호출한다.

명시적으로 생성자를 정의하지 않은 어떤 클래에는, 컴파일러가 파라미터가 없는 기본 생성자를 제공한다.

기본 생성자는 기본형의 데이타 맴버들을 초기화 하지 않는다.

그러나 다른 클래스에 속한 객체인 데이타 맴버들의 기본 생성자를 호출한다.

 

https://www.eugeneprogram.com/xe/board_SFDa73/424

 

예를 들어, 위 예제에서 

  explicit Account(std::string accountName)

        :name{ accountName }  {

        //empty body

    }

부분이 없다면, Account 클래스의 기본 생성자는 string 클래스의 기본 생성자를 호출할 것이다.

 

기본 생성자는 만약 위의 Account 클래스에서와 같이 생성자를 정의한 경우 생성되지 않는다.

그러므로 그러한 경우에는

Account myAccount;

와 같은 클래스의 선언은 불가능하다.