본문 바로가기

PL/C & C++

[C++] class

  클래스 (class)

OOP의 가장 핵심적인 개념인 클래스는 "구조체가 확장 된 것"이라 생각하면 된다. 

C에서 구조체는 타입이 다른 변수의 집합이라 보았다면, C++에서 클래스는 타입이 다른 변수의 집합뿐만 아니라, 함수까지 포함 된 것이다. 

선언 방법은 C의 구조체 선언문에서 struct 를 class로 바꾸면 되며, public 이나 private 와 같은 엑세스 지정자도 추가 할 수 있다. 

  생성자 (Constructor)

클래스를 선언하게 되면 그 클래스는 메모리에 객체로써 자리를 잡게 된다. 그러나, 이 객체는 해당 메모리에 자리만 잡고 있을 뿐이지, 초기화는 되지 않으므로, 생성자를 통해서 초기화를 해줄 필요가 있다. 

기본적으로 객체를 선언하였다면, 객체를 이루는 변수들에 값을 대입함으로써 객체를 초기화 할 수 있지만, 객체가 생성될때 마다 값을 대입하는 행동은 귀찮고 비효율적이다. 

이런 비효율 적인 활동을 간단하게 해결 할 수 있게 하는 것이 바로 생성자이다. 

생성자는 스스로 자기 자신의 객체를 초기화 하는 방법을 정의하는 것으로써, 생성자의 이름은 항상 클래스명과 동일해야 한다. 또한 오버로딩을 통해서 인자값을 받을 수 있으나, 리턴값을 가질 수 없는것이 특징이다. 

 

  생성자 오버로딩

오버로딩과 오버라이딩 개념은 항상 헷갈리지만, 이 두 개념에 대한 정리는 다음으로 미룬다. 

일단 생성자에선 생성자 오버로딩이 가능하며, 이것을 통해서 인자값을 전달 할 수 있다. 

 

 

 

 

C++ 프로그래밍 : 클래스 개념과 생성자의 사용

C++ Programming C++ 프로그래밍 클래스 개념과 생성자의 사용 클래스 (class) OOP의 가장 핵심적인 개념인 클래스는 "구조체가 확장 된 것"이라 생각하면 된다. C에서 구조체는 타입이 다른 변수의 집��

ra2kstar.tistory.com

 

'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