언어/C++

1. Introduction to the C++

에린_1 2023. 10. 2. 17:38
728x90

다시 열심히 블로그에 적어봅시다.

 

1. C++ 란 무엇인가

C++는 Bjarne Stroustrup이 C 프로그래밍 언어의 확장으로 만든 범용 프로그래밍 언어이다.

1985년 처음 소개됐으며, 클래스 및 상속과 같은 객체 지향 기능을 제공한다.

C++는 게임 개발, 시스템 프로그래밍, 임베디드 시스템, 고성능 컴퓨팅 등 다양한 애플리케이션에 널리 사용된다.

 

C++는 정적 타입 언어이다. 즉, 변수 유형은 컴파일 중 결정되며, 다양한 작업을 위한 풍부한 함수, 알고리즘 및 데이터 구조 세트를 제공하는 C++ 표준 라이브러리 라는 광범위한 라이브러리가 있다.

 

정적 타입 언어 - 작성자가 소스 코드를 보고 변수 타입을 직접 작성하는 언어

변수에 들어갈 값의 형태에 따라 자료형을 지정해주어야한다. 컴파일시 맞지 않는 값이 들어있으면 컴파일 에러 발생

장점 

1. 타입 에러로 인한 문제점을 초기에 발견할 수 있어 타입 관련된 런타임 오류를 방지할 수 있고 타입의 안정성이 높다.

2. 컴파일 시에 미리 타입을 결정하기 때문에 실행 속도가 빠르다.

3. 코드의 가독성이 좋아 다수의 협업이나 프로젝트를 할 때 유지보수가 유리하다.

단점

- 코드를 작성할 때 매번 타입을 결정해 주는것이 번거롭다.

 

C++는 C의 기능을 기반으로 구축되므로 대부분의 C 프로그램은 C++ 컴파일러로 컴파일 하고 실행할 수 있다.

 

2. 왜 C++를 사용하는가

 

C++는 다양한 이유로 널리 사용되는 프로그래밍 언어이다. 그 이유는 다음과 같다.

성능

C++는 높은 성능과 효율성을 제공하도록 설계되었다.

시스템 리소스를 세밀하게 제어할 수 있어 소프트웨어를 더욱 쉽게 최적화할 수 있다.

 

이식성

C++는 다양한 컴퓨터 아키텍처와 운영 체제에서 지원되므로 큰 수정 없이 다양한 플랫폼에서 실행되는 이식 가능한 코드를 작성할 수 있다.

 

객체 지향 프로그래밍

C++는 클래스와 개체를 사용하여 프로그램을 설계할 수 있게 해주는 패러다임인개체 지향 프로그램(OOP)을 지원하여 더 나은 코드 구성과 재사용성을 제공한다.

 

저수준 및 고급 프로그래밍 지원

C++를 사용하면 메모리 조작과 같은 하위 수준 코드뿐만 아니라 클래스 생성 및 STL(표준 템플릿 라이브러리) 사용과 같은 상위 수준 추상화를 모두 작성할 수 있다.

 

광범위한 라이브러리

C++는 프로젝트 개발을 지원하고 효율성을 높일 수 있는 STL(푲준 템플릿 라이브러리), Boost, Qt 등 광범위한 라이브러리와 도구를 제공한다.

 

C언어와의 결합

C++는 C와 결합하여 두 언어의 기능을 모두 제공하고 기존 C 코드를 재사용할 수 있다.

C++ 기능을 통합하면 코드를 향상하고 기능을 향상시킬 수 있다.

 

활발한 커뮤니티

C++는 오랫동안 사용되어 왔으며 언어 성장에 기여하고, 새로운 아이디어를 포현하고, 언어 개발에 도움이 되는 토론에 참여하는 크고 활동적인 사용자 커뮤니티를 보유하고 있다. 이렇게 되면 발생하는 문제에 대한 해결책을 훨씬 쉽게 찾을 수 있다.

 

 

3. C VS C++

 

C와 C++는 널리 사용되는 두 가지 프로그래밍 언어로 몇 가지 유사점이 있지만 중요한 차이점도 있다.

C++는 객체 지향 프로그래밍, 플래스, 예외 처리 등의 기능이 추가된 C 프로그래밍 언어의 확장이다.

두 언어 모두 유사한 작업에 사용되지만 고유한 구문과 의미를 갖고 있어 서로 구별된다.

 

구문 및 의미론

C

- C는 절차적 프로그래밍 언어이다.

- 기능과 구조화된 프로그래밍에 중점을 둔다.

- 개체나 클래스를 지원하지 않는다.

- 메모리 관리는 malloc 과 같은 기능을 사용하여 수동으로 수행한다.

 

C++

- C++는 절차지향적이면서 객체지향적이다.

- 함수와 클래스를 모두 지원한다.

- 다양한 프로그래밍 패러다임을 통합한다.

- 메모리 관리는 C와 같이 수동으로 수행할 수도 있고, 생성자/소멸자 및 스마트 포인터에 의존할 수도 있다.

 

 

코드 재사용성 및 모듈성

C

- 코드 재사용성은 함수와 모듈식 프로그래밍을 통해 달성된다.

- 구조화된 설계를 통해 높은 응집력과 낮은 결합도를 달성한다.

- 헤더를 통해 함수 라이브러리를 생성하고 포함할 수 있다.

 

C++

- 클래스, 상속 및 다형성을 통해 더 나은 코드 재사용성을 제공한다.

- 코드 모듈성은 네임스페이스와 잘 설계된 객체 지향 계층 구조를 통해 향상된다.

 

 

 

오류처리

C

- C의 오류처리는 주로 반환 코드를 통해 수행된다.

- 예외 또는 내장된 오류 처리 매커니즘에 대한 지원이 부족하다.

 

C++

- 프로그램 실행 중에 발생할 수 있는 오류를 처리하는 데 사용할 수 있는 예외 처리를 제공한다.

- Try,Catch 및 키워드를 사용하여 예외를 포착하고 처리할 수 있도록 하여 throw 오류 처리를 더 효과적으로 제어할 수 있다.

 

 

 

C와 C++는 모두 독특한 특징과 능력을 지닌 강력한 언어이다.

C가 더 간단하고 절차적 프로그래밍에 중점을 둔 반면, C++는 다양한 프로그래밍 패터다임을 사용하고 향상된 코드 구성을 사용할 수 있는 다양성을 제공한다. 이 두 언어의 차이점을 이해하면 특정 요구 사항과 프로그래밍 스타일에 더 적합한 언어를 결정하는 데 도움이 될 수 있다.

728x90

'언어 > C++' 카테고리의 다른 글

Vector Container  (0) 2024.02.14
C & C++.1  (1) 2024.02.07
9. 연산자 오버로딩  (0) 2023.02.02
가상(Virtual)의 원리와 다중상속  (0) 2023.01.31
8. 상속과 다형성  (0) 2023.01.26