클래스(Class)
C++의 클래스는 C의 구조체에서 확장된 C++의 구조체와 기본(default) 접근제한자만 다른 것이라고 볼 수 있다.
접근제한자
접근 제한자는 3가지로 나뉘며, 멤버들의 접근 권한을 정한다.
- private: 같은 클래스(또는 friend) 안에서 접근 가능
클래스 내(클래스 내에 정의된 함수)에서만 접근 허용 - protected: 같은 클래스 또는 상속된 자식 클래스(또는 friend) 안에서 접근 가능
- 상속관계에 놓여있을 때, 유도 클래스에서의 접근 허용 - public: 어디서든 접근 가능
C++에서 클래스의 기본 접근 제한자는 private이다. C에서 구조체나 C++에서 구조체의 기본 접근 제한자가 public인 것과 다르다.
클래스는 쉽게 말하면 변수와 함수 등을 포함하는 틀이라고 할 수 있다.
나는 클래스를 설계하는 것이 만들 객체들의 특성을 변수에 담고, 함수로 동작을 시킬 수 있는 틀을 만드는 것이라고 생각한다. 이러한 틀로 여러 객체(object)들을 만들어내고 동작시키는 것이 가능하다.
클래스와 OOP(객체 지향 프로그래밍)의 연관성
클래스를 배우면서 객체 지향 프로그래밍(OOP)의 특성을 빼놓을 수는 없다. 이전 포스팅에서 다룬 내용을 보고 읽으면 좀 더 이해하기 좋을 것이다.
https://coding-maggot.tistory.com/10
클래스는 변수와 함수를 하나의 단위로 묶고, 구현내용 일부를 외부로부터 감추는 캡슐화의 특징이 있다. 또 현실이나 만드려는 객체의 주요특징을 위주로 간소화하여 표현하는 것이 가능한 추상화의 특성을 가진다.
부모 클래스를 상속하는 자식 클래스를 만드는 것은 기본의 틀에서 조금 변형시켜 재사용하는 것이라고 보면 된다. 이 때 각 자식클래스의 쓰임새에 맞게 상속받은 함수의 인자의 자료형이나 개수가 다른 함수를 만드는 등 오버로딩과 오버라이딩을 하는 것을 다형성이라고 한다.
참조 블로그 : https://blog.hexabrain.net/167
'[C_C++]이론 공부 > 이론+STL' 카테고리의 다른 글
[C++ STL] set 사용법 위주 공부 (0) | 2021.06.29 |
---|---|
[C++ STL] vector(벡터) 공부 (0) | 2021.06.14 |
OOP(객체지향 프로그래밍)의 주요특징 (0) | 2021.05.21 |
[C++] 데이터 타입(자료형) (0) | 2021.05.20 |
[C++] 메모리 영역 (메모리 구조), 정적할당과 동적할당 (0) | 2021.05.20 |