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;
와 같은 클래스의 선언은 불가능하다.
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
10 | C++ 기초 - Class 맴버 변수 조작하기 | Eugene | 2020.01.04 | 750 |
» | C++ 기초 - 기본 생성자(Default Constructor) | Eugene | 2019.12.21 | 1435 |
8 | [C/C++] N X N 배열에 달팽이 모양으로 입력 | Eugene | 2019.08.30 | 1533 |
7 | C++ 기초 - string | Eugene | 2019.08.22 | 354 |
6 | C++ 기초 - Class 맴버 변수와 생성자 | Eugene | 2019.08.01 | 960 |
5 | C++ 기초 - Class | Eugene | 2019.05.17 | 626 |
4 | C++ 기초 - 재귀 함수를 이용한 최대값 구하기 | Eugene | 2019.05.15 | 519 |
3 | C++ 기초 - if를 이용하여 두 정수의 크기 비교 | Eugene | 2018.07.25 | 1987 |
2 | C++ 기초 - 두 정수 입력받아 합 구하기 | Eugene | 2017.10.21 | 5755 |
1 | C++ 기초 - Hello World! | Eugene | 2017.09.29 | 3167 |