# C++언어의 주요한 설계 목적
- 캡슐화(클래스) : 데이터를 캡슐로 싸서 외부의 접근으로부터 보호(정보은닉), 멤버 변수와 멤버 함수 이용
private 변수의 초기화, 조회 등에는 생성자 함수, public 함수 등을 이용하여 private에 접근한다. - 상속 : 객체가 자식 클래스의 멤버와 부모 클래스에 선언된 모양 그대로 멤버들을 가지고 탄생한다. 객체간 IS-A 관계가 성립되어야 한다. 재사용성에 강점이 있다.
|
|
# C++의 특징
# 함수중복(Function Overloading) - 다형성
매개변수 정보가 다르면 함수 이름을 중복해서 선언할 수 있다.
다형성 : 하나의 기능이 경우에 따라 다르게 보이거나 다르게 작동한다. 연산자 중복, 함수 중복, 함수 재정의(overriding)
|
|
# 디폴트 매개 변수(default parameter)
함수를 정의할 때 매개변수에 기본값을 지정할 수 있다. 이는 overloading과도 이어진다.
|
|
# 참조와 참조 변수(reference)
이름을 지니는 공간(변수에 할당된 공간)에 별명을 부여하는 것.
이는 참조에 의한 호출을 위해 사용된다.
|
|
# 참조에 의한 호출(call-by-reference)
|
|
# new/delete 연산자
- 동적할당 / 해제 : 메모리를 동적으로 필요한 만큼만 상황에 맞게 할당하고 해제하는 것.
- 메인 메모리에서는 불가하고 Heap이라는 공간에서 사용 가능, 메인 메모리에 포인터가 있어야함.
|
|
# 연산자 재정의
기존 C++ 연산자에 새로운 연산을 정의할 수 있다.
# 제네릭 함수와 클래스(일반화)
데이터 타입에 의존하지 않고 일반화시킨 함수나 클래스 작성 가능