Default Constructor

기본 생성자는 생성자 선언 여부로 갈린다

컴파일러는 생성자가 하나도 없는 클래스에만 매개변수 없는 기본 생성자를 자동으로 만들어 준다.

생성자 없음

Point()가 자동으로 생긴다

class Point { int x; int y; };
Point pt;

Point에는 사용자 정의 생성자가 없으므로 Point pt; 문장이 컴파일된다.

생성자 있음

기본 생성자는 자동 생성되지 않는다

Book(std::string t, int y);
Book book;

매개변수 생성자를 하나라도 선언했다면 Book()을 직접 정의하거나 필요한 인자를 넘겨야 한다.

초기화 점검

자동 생성된 기본 생성자는 기본 타입 멤버를 의미 있는 값으로 채워 주지 않는다. x, y 같은 int는 생성자나 기본 멤버 초기화로 값을 정해야 한다.