클래스 (class)
OOP의 가장 핵심적인 개념인 클래스는 "구조체가 확장 된 것"이라 생각하면 된다.
C에서 구조체는 타입이 다른 변수의 집합이라 보았다면, C++에서 클래스는 타입이 다른 변수의 집합뿐만 아니라, 함수까지 포함 된 것이다.
선언 방법은 C의 구조체 선언문에서 struct 를 class로 바꾸면 되며, public 이나 private 와 같은 엑세스 지정자도 추가 할 수 있다.
생성자 (Constructor)
클래스를 선언하게 되면 그 클래스는 메모리에 객체로써 자리를 잡게 된다. 그러나, 이 객체는 해당 메모리에 자리만 잡고 있을 뿐이지, 초기화는 되지 않으므로, 생성자를 통해서 초기화를 해줄 필요가 있다.
기본적으로 객체를 선언하였다면, 객체를 이루는 변수들에 값을 대입함으로써 객체를 초기화 할 수 있지만, 객체가 생성될때 마다 값을 대입하는 행동은 귀찮고 비효율적이다.
이런 비효율 적인 활동을 간단하게 해결 할 수 있게 하는 것이 바로 생성자이다.
생성자는 스스로 자기 자신의 객체를 초기화 하는 방법을 정의하는 것으로써, 생성자의 이름은 항상 클래스명과 동일해야 한다. 또한 오버로딩을 통해서 인자값을 받을 수 있으나, 리턴값을 가질 수 없는것이 특징이다.
생성자 오버로딩
오버로딩과 오버라이딩 개념은 항상 헷갈리지만, 이 두 개념에 대한 정리는 다음으로 미룬다.
일단 생성자에선 생성자 오버로딩이 가능하며, 이것을 통해서 인자값을 전달 할 수 있다.
'PL > C & C++' 카테고리의 다른 글
[C] pointer 증감연산자 (0) | 2020.11.24 |
---|---|
[C] 파일 입출력 (0) | 2020.11.04 |
[C&C++] header 파일 선언 이유 (0) | 2020.10.16 |
함수 선언 이유 (0) | 2020.10.16 |
[C/C++] 포인터 반환 함수 (0) | 2020.09.24 |