2023. 3. 8. 17:35ㆍ공부/C++
C++
C++는 기존의 C언어에 몇 가지 기능을 추가하여 더욱 발전된 형태의 언어라고 말할 수 있다.
때문에 기존 C언어의 문법적 체계를 그대로 계승하여 C언어와의 호환성이 좋다.
이 외에도 C++에는 다양한 특징과 장점들이 있다.
간단히 살펴보도록 하자.
1. 인라인 함수
빈번한 함수 호출은 오버헤드를 만든다는 문제점이 있다.
(오버헤드란? - 어떠한 기능을 수행하기 위해 추가로 들어가는 간접적인 처리시간 또는 메모리)
인라인 함수는 이러한 오버헤드를 줄여 자주 호출되는 함수의 성능을 향상시킨다.
2. 디폴트 매개 변수
매개 변수에 값을 전달하지 않은 경우, 미리 선언된 디폴트 값을 매개 변수에 전달할 수 있도록 한다.
int sum(int a, int b, int c =0)
{
return a+b+c;
}
// 선언부
int main()
{
cout<<sum(1,3,5); //출력결과 9 (1+3+5)
cout<<sum(1,3); //출력결과 4 (1+3+0)
}
//호출부
sum(1,3)의 경우, 변수 c에 값을 전달하지 않았지만 선언부에서 선언한 디폴트 값인 0이 그대로 전달되었다.
3. 참조 (reference)
미리 정의된 변수의 이름 대신 별명을 만들어 사용할 수 있다.
4. 참조에 의한 호출 (call by reference)
함수 호출 시 참조를 사용할 수 있다.
참조에 의한 호출 역시 오버헤드를 줄여 성능을 향상시킬 수 있다.
5. 동적 메모리 할당/해제 (new/delete 연산자)
동적 메모리는 프로그램 실행 중에 필요한 메모리를 할당 받을 수 있다.
C++에서는 동적 메모리 할당/해제에 new/delete연산자를 사용한다.
6. 제네릭 함수의 클래스 (generic)
함수 및 클래스를 변수 타입에 관계없이 사용할 수 있도록 일반화 한다.
7. 객체와 캡슐화 (EnCapsulation)
캡슐화는 데이터를 캡슐로 감싸 외부와 격리하고 보호하는 특성을 의미한다.
C++는 클래스(Class)를 사용하여 객체(Object)의 모양, 즉 틀을 만든다.
그리고 이러한 클래스에서 생겨난 실체(Instance)를 객체라고 한다.
흔히들 클래스를 붕어빵을 찍어내는 틀, 객체를 붕어빵으로 비유하고는 한다.
클래스는 멤버변수들과 멤버함수들로 구성되어있다.
멤버들은 접근 지정자를 통해 외부 객체에서의 접근 가능 여부를 설정할 수 있다.
접근 지정자의 종류는 public, private, protected로 이중 public으로 지정한 멤버만이 외부에서 접근 할 수 있다.
8. 상속성 (Inheritance)
한 클래스에서 생성된 객체가 부모 클래스에 선언된 멤버들을 그대로 유지한채 생성된다.
9. 다형성 (Polymorphism)
C++은 매개 변수의 타입이나 개수가 다르다는 조건하에 동일한 이름의 함수를 사용할 수 있다.
EX)
int sum (int a,int b,int c) / double sum(double a, double b, double c) / int sum (int a, int b)
동일한 이름의 함수를 사용하기 때문에 함수의 이름을 구분할 필요가 없다는 장점이 있다.
이상으로 C++이 가진 특징들을 간단히 요약해보았다.
'공부 > C++' 카테고리의 다른 글
[C++] 생성자와 소멸자 (0) | 2023.04.02 |
---|---|
[C++] 클래스(class)와 객체(instance) (0) | 2023.03.19 |
[C++] 문자열 (cstring과 string) (0) | 2023.03.12 |
[C++] 입출력 함수(cin, cout) / 네임스페이스(namespace) (0) | 2023.03.08 |