C++

C++ 프로그래밍 언어 개요

김구티2 2024. 2. 8. 19:53

1. C++의 개념

C++는 Bjarne Stroustrup이 개발한 가장 많이 사용되고, 또한 가장 널리 사용되는 프로그래밍 언어라 할 수 있다. C++는 고급 객체 지향 프로그래밍 언어이다. 이 언어를 사용하면 개발자는 대규모 애플리케이션 및 소프트웨어 개발, 게임 개발 및 운영 체제 프로그래밍을 위한 깔끔하고 효율적인 코드를 작성할 수 있다. 물론 내가 사용했을 때는 그닥 깔끔하지 못했지만 말이다.. 아무튼 C++는 OOP(객체 지향 프로그래밍)를 포함하도록 C 언어를 확장한 것으로, 컴퓨터용 프로그램을 개발하는 데 사용된다. 이 C++의 튜토리얼에서는 C++ 기본, C++ 함수, C++ 클래스, OOP 및 STL 개념과 같은 C++의 모든 기본 항목부터 고급 항목까지 다루게 된다.

 

2. C++ 학습의 필요성

① C++는 가장 많이 사용되고 널리 사용되는 프로그래밍 언어 중 하나이다.
② C++는 운영 체제, 임베디드 시스템 및 그래픽 사용자 인터페이스를 만드는 데 사용된다.
③ 추상화, 캡슐화, 상속 등 모든 OOP 개념을 구현하는 객체 지향 프로그래밍 언어로, 프로그램에 명확한 구조를 제공하고 코드를 재사용할 수 있어 개발 비용을 낮추고 훌륭한 보안을 제공한다.
④ 이식성이 뛰어나며, 따라서 여러 플랫폼에 적용할 수 있는 애플리케이션을 만드는 데 사용할 수 있다.
⑤ 동의하기는 다소 어렵지만, 상대적으로 C++는 배우기 쉬우므로 첫 번째 프로그래밍 언어로 선택할 수 있을 것이다. 사실 우리에게 익숙하다는 것만으로, 대학에서 강의가 존재한다는 것만으로 그 언어는 분명 효율성, 학습성이 뛰어난 언어이기는 하다.
⑥ C++의 구문은 C, Java 및 C#과 유사하므로 프로그래머가 프로그래밍을 쉽게 C++로 전환할 수 있다.

 

3. C++의 특징

C++는 객체지향 패러다임을 포함하기 위해 C 언어를 개선하여 개발된 범용 프로그래밍 언어이다. 그런 C++에는 여러 특징이 존재한다.

 

① 객체 지향 프로그래밍

C++는 절차적 프로그래밍 언어인 C와 달리, 객체 지향 프로그래밍 언어이다. 이것이 C++ 의 가장 중요한 핵심이다. 객체 지향이기에 프로그래밍하는 동안 객체를 생성 또는 파괴할 수 있다. 또한, 객체를 생성할 수 있는 청사진을 생성할 수도 있을 것이다. 객체 지향 프로그래밍 언어의 개념으로는 클래스, 오브젝트, 캡슐화, 다형성, 상속성, 추출 같은 것이 존재한다.

 

② 기계 독립적

C++ 실행 파일은 플랫폼 독립적이지는 않다. 실제로 Linux에서 컴파일된 프로그램은 Windows에서 실행되지 않는다. 그러나 컴퓨터에 독립적이라고 할 수 있다. 리눅스/윈도우/맥에서 실행할 수 있는 코드를 작성했다고 가정해 보자. 이 코드는 C++ 컴퓨터를 독립적으로 만들지만, C++의 실행 파일은 다른 운영 체제에서 실행할 수 없는 것이다.

③ 단순성

프로그램을 논리적인 단위와 작은 부분으로 나눌 수 있고, 풍부한 라이브러리 지원과 다양한 데이터 유형을 가지고 있다는 의미에서 간단한 언어라고 할 수 있다. 또한 C++의 자동 키워드는 더욱 단순화를 도와주는 기능이다.

 

* 자동 키워드의 아이디어는 C++ 컴파일러를 구성하여 데이터 유형을 선언하게 하는 것이 아니라, 컴파일하면서 데이터 유형을 추론하는 것이다. 초기 설정 없이는 무언가를 선언할 수 없다는 것을 명심해야 한다. 컴파일러가 추론할 수 있는 방법이 있어야 한다.

 

④ 고급 언어

C++는 중간 수준의 프로그래밍 언어인 C와 달리 상위 수준의 언어이다. C++는 인간이 이해할 수 있는 언어인 영어와 밀접한 관련이 있는 상위 수준의 언어이기 때문에 더 쉽게 작업할 수 있다고는.. 한다.

 

⑤ 사용자들의 선호

C++는 객체 지향 프로그래밍의 기능을 지원하는 다른 많은 프로그래밍 언어의 기본 언어가 될 수 있다. C++의 아버지인 Bjarne Stroustrup은 최초의 객체 지향 언어인 Simula 67이 시뮬레이션이 부족하다는 것을 발견하고 C++를 개발하기로 결정한 것이기도 하다.

 

⑥ 대소문자 구분

C++는 대소문자를 구분하는 프로그래밍 언어이다. 예를 들어, cin은 입력 스트림에서 입력을 받는 데 사용된다. 하지만 입력한 내용이 "Cin"이라면 원하는 의도대로 작동하지 않을 것이다. HTML이나 MySQL과 같은 다른 언어는 대소문자를 구분하지 않는다.

 

⑦ 컴파일러 기반

C++는 파이썬과 달리 컴파일러를 기반으로 한 언어이다. C++ 프로그램은 컴파일러가 되어 실행 파일이 실행되는 데 사용된다. 여기서 솔깃해지는 건, C++는 자바나 파이썬보다 상대적으로 빠른 언어라는 점이다.

 

⑧ 동적 메모리 할당

프로그램이 C++에서 실행되면 변수들은 동적 힙 공간에 할당된다. 함수들 내부에서는 변수들이 스택 공간에 할당된다. 정의된 변수에 특정 정보를 저장하기 위해 얼마나 많은 메모리가 필요한지를 미리 알 수 없고, 필요한 메모리의 크기는 실행 시간에 결정될 수 있다.

 

⑨ 메모리 관리

- C++를 사용하면 변수나 배열의 메모리를 런타임에 할당할 수 있다. 이를 동적 메모리 할당이라고 하는 것이다.
- 자바나 파이썬 같은 다른 프로그래밍 언어에서는 컴파일러가 변수에 할당된 메모리를 자동으로 관리한다. 하지만 C++에서는 그렇지 않다.
- C++에서는 메모리가 사용되지 않은 후, 수동으로 동적으로 할당된 메모리의 할당을 해제해야 한다.
- 메모리 할당 및 할당 해제는 각각 새 연산자와 삭제 연산자를 사용하여 수행할 수 있다.

728x90

'C++' 카테고리의 다른 글

C++ 전처리기(#) 총정리  (1) 2024.02.12
C++ 주석 총정리  (1) 2024.02.11
C++ 프로그램 작성의 시작, Hello World 학습  (1) 2024.02.10
C와 C++의 공통점과 차이점 총정리  (0) 2024.02.10
C++ 개발 환경 설정  (0) 2024.02.09