상세 컨텐츠

본문 제목

C++이란 어떤 언어일까?

C++

by zmo 2024. 8. 11. 03:32

본문

이전시간부터 계속하던 언리얼 엔진의 시네 카메라 머신에 대해 알아보려 했지만 언리얼 엔진이 중간에 뻗어버렸다...

고로 오늘은 C++언어란 어떤 특성을 가지고 있는지 먼저 알아보는 시간을 가져보도록 하자

 

 

 


C++이란? chat GPT에게 물어보았다

C++는 강력한 범용 프로그래밍 언어로, 객체 지향 프로그래밍(Object-Oriented Programming, OOP)과 절차적 프로그래밍(Procedural Programming)의 특징을 모두 가지고 있습니다. 1980년대에 벨 연구소(Bell Labs)의 비야네 스트롭스트룹(Bjarne Stroustrup)이 개발했으며, C 언어의 확장판으로 만들어졌습니다. 이는 C 언어의 성능과 저수준 시스템 접근 능력을 유지하면서도, 더 높은 수준의 프로그램 설계 및 코드 재사용성을 제공하기 위해 설계되었습니다.

### C++의 주요 특징
1. 객체 지향 프로그래밍 (OOP):
- 클래스와 객체: C++는 클래스를 사용하여 데이터와 해당 데이터를 처리하는 함수들을 캡슐화하고, 이를 통해 객체 지향 프로그래밍을 구현합니다. 객체 지향 개념은 코드의 재사용성과 유지 보수성을 높여줍니다.
- 상속: 새로운 클래스가 기존 클래스를 기반으로 확장되도록 하여 코드의 중복을 줄입니다.
- 다형성: 동일한 인터페이스를 사용해 다양한 데이터 타입을 처리할 수 있어 유연한 코드 작성이 가능합니다.

2. 절차적 프로그래밍: - C++는 C 언어에서 제공하는 절차적 프로그래밍 패러다임을 그대로 사용할 수 있습니다. 이는 C++가 C 언어와 거의 호환되기 때문에 가능한 일입니다.
- 이 패러다임은 함수와 명령어를 중심으로 프로그램을 구조화합니다.

3. 저수준 메모리 관리: - C++는 C 언어처럼 포인터, 메모리 할당, 메모리 해제 등의 저수준 메모리 관리를 지원합니다. 이를 통해 개발자는 메모리와 자원을 세밀하게 제어할 수 있습니다.

4. 템플릿: - C++는 템플릿 기능을 제공하여, 데이터 타입에 독립적인 함수나 클래스를 작성할 수 있습니다. 이를 통해 코드 재사용성이 크게 향상됩니다.
- 예를 들어, 템플릿을 사용하면 동일한 알고리즘을 다양한 데이터 타입에 대해 사용할 수 있습니다.

5. STL(Standard Template Library): - C++는 표준 템플릿 라이브러리(STL)를 제공합니다. 이는 알고리즘, 컨테이너, 반복자 및 함수 객체와 같은 범용 구성 요소를 포함하고 있습니다.
- STL을 사용하면 일반적인 데이터 구조(예: 벡터, 리스트, 맵 등)와 알고리즘(예: 정렬, 탐색 등)을 쉽게 구현할 수 있습니다.

6. 다중 상속: - C++는 하나의 클래스가 둘 이상의 클래스로부터 상속받을 수 있는 다중 상속을 지원합니다. 이는 다양한 클래스의 기능을 조합할 수 있게 해줍니다.

7. 호환성과 성능: - C++는 C와 호환되므로, 기존 C 코드와 라이브러리를 C++ 프로그램에서 사용할 수 있습니다. - 컴파일된 C++ 프로그램은 매우 효율적이며, 성능이 중요한 시스템 소프트웨어, 게임 엔진, 임베디드 시스템, 고성능 애플리케이션에서 널리 사용됩니다.

### C++의 사용 예
- 시스템 소프트웨어: 운영 체제, 드라이버, 시스템 유틸리티 등
- 게임 개발: 언리얼 엔진과 같은 게임 엔진이 C++로 작성되어 있으며, 성능이 중요한 게임 개발에 자주 사용됩니다.
- 임베디드 시스템: 제한된 자원을 가진 하드웨어에서 효율적인 코드 실행이 필요한 경우
- 고성능 애플리케이션: 금융 시스템, 물리학 시뮬레이션, 과학 계산 등

### 결론
C++는 고성능 애플리케이션과 시스템 프로그래밍을 위한 강력한 언어입니다. 객체 지향 프로그래밍과 절차적 프로그래밍을 모두 지원하며, 메모리와 성능을 세밀하게 제어할 수 있습니다. 이러한 특성 덕분에, C++는 많은 산업 분야에서 핵심적인 역할을 하고 있습니다.

라고 한다 

 

이중 다른 것들 (객체 지향 프로그래밍이나 다중 상속등)은 들어 보았지만 템플릿 기능은 익숙치 않았다 템플릿 기능은 설명과 같이 데이터 타입에 상관없이 사용할수 있는 코드와 같은것 같다 예를들어 int 타입을 넣었을때 더하기를 수행할수 있고 같은 코드에 char 타입을 넣었을때도 더하기를 수행할수 있는 기능을 말한다 여러 데이터 타입이 오가는 환경에서는 오류없이 유용하게 쓸수 있는 기능인것 같다

 

 


이번 시간에는 chatGPT의 힘을 빌려 C++의 전체적인 부분을 알아보았다 언리얼 엔진의 기본이 되는만큼 나중에 더 자세히 알아보도록 하자

다음 시간에는 꼭 오류를 이겨내고 시네 카메라 머신을 알아보도록 하자..

관련글 더보기