C++ 문법

클래스

슬뷔 2022. 4. 15. 03:01
클래스

클래스 : 구조체처럼 여러 변수를 모아두고 하나로 묶어서 사용할 수 있는 기능을 제공한다.
클래스에서는 필요한 함수들도 구현하여 멤버로 둘 수 있다.
C++에서는 객체를 만들기 위한 수단으로 클래스를 제공한다.

구조체는 예전 C 버전에서는 변수만 모아두고 함수를 모아둘 수 없었다.
하지만, C++ 에서는 클래스와 마찬가지로 함수도 모아두고 사용할 수 있다.
단, 기본적인 차이점은 멤버에 접근할 때 기본적인 접근 방식에서의 차이가 있다.

구조체는 기본적으로 public으로 되어 있다.
클래스는 기본적으로 private으로 되어 있다.

객체 : C++에서 객체는 모든 변수를 객체라고 부를 수 있다.
보통 객체라고 하면 클래스를 이용해서 만들어 준 변수를 의미하는 경우가 많다.

객체지향 프로그래밍 : 원하는 객체들을 만들어서 조립하여 프로그램을 완성해 나가는 방식을 말한다.
객체들은 프로그램을 만들어나가기 위한 하나의 부품이 되고, 이 부품을 조립하여 완성된 프로그램을 만들어 나가는 방식인 것이다.

컴포넌트지향 프로그래밍 : 컴포넌트라는 부품을 만들고 이 부품을 조립할 일종의 기판을 만들어준다.
컴포넌트 클래스, 기판 클래스 이런식으로 나눠둔 후에 기판클래스에 어떤 컴포넌트들을 조합하느냐에 따라 객체가 달라지는 프로그래밍 방식을 말한다.

캡슐화 : 여러 변수와 함수를 모아서 하나의 클래스 혹은 구조체로만들어주는 것을 말한다.

은닉화 : 클래스에서 제공하는 멤버를 외부에 공개하는 수준을 정하는 것을 말한다.

클래스 내부 : 클래스에 만들어져 있는 함수 안
클래스 외부 : 클래스에 만들어진 함수가 아니라 다른 함수 안을 말한다.

public : 클래스의 내부 혹은 외부에서 모두 접근이 가능한 것을 말한다.
private : 클래스의 내부에서만 접근이 가능하고, 외부에서는 접근이 불가능하다.
protected : 상속받은 클래스들에 한해서 외부에서 접근가능하게 해준다.

m_name같은 멤버변수의 경우 public이므로 클래스변수명.으로 간단하게 호출하고 변경할 수 있지만

m_Armor은 private이므로 public함수인 SetArmor로 지정해주고 GetArmor로 값을 불러줘야 한다.