본문 바로가기

C++

C++언어의 기반

c++는 는 기본적으로 c언어를 확장한 프로그래밍 언어이다.

C언어는 고급 언어지만 메모리를 집적 접근하는 것과 같은 저급 언어의 특성을 함께 가진다=> 효율적

다른 고급언어에 비해 이해가 쉽지않고, 개발 기간이 오래걸린다=>오류 가능성

그래서  C언어의 장점만 빼와서 -> C++ 탄생

 

절차정 프로그래밍 기법을 사용하는 C언어 + 참조자 + 함수 중복 + 인라인 함수 + new + delete

다양한 기능 추가 -> 쉽고 편리한 프로그래밍을 지원함

 

클래스를 이용한 객체지향 프로그래밍의 개념 + 캡슐화 + 정보 은닉 => 안정성

 

상속다형성 을 통해 코드를 간소화 재활용성 과 유연성을 증가

 

템플릿을 통해 최근의 새로운 패러다임인 일반화 프로그래밍 기법 제공

 

c++ -> 절차적 프로그래밍, 객체지향 프로그래밍 , 일반화 프로그래밍

 

 

객체지향 프로그래밍 C++

 

캡슐화 | 상속 | 다형성

 

캡슐화, 데이터와 알고리즘을 하나의 단위로 묶는것, -> 은닉과 추상화 지원

상속 , 비슷한 클래스를 가져다가 사용 -> 재사용성

다형성-> 같은 이름의 함수나 연산자가 여러가지로 해석 -> 유연성 

 

 

절차적/구조적/객체지향 프로그램밍의 예

 

절차적 프로그래밍(procedural programming)

데이터보드는 절차, 즉 알고리즘을 중시 하는 방법. 

프로그램은 절차에 따라 진행되며 goto나 jump문을 이용해서 프로그램의 흐름을 제어한다.

 

 

어셈블리어가 가장 저수준의 절차적 프로그래밍 언어이다

 

구조적 프로그래밍(structural programming)

절차적 프로그래밍의 하위 개념으로 볼수 있다. goto 문을 없애거나 의존성을 줄이는 대신에 반복문과 같은 저수준의 구조들에서부터 함수와 같은 고수준의 구조들을 사용. 여전히 데이터와 알고리즘은 분리 되어있다.

객체지향 프로그래밍(object-oriented programming)

캡술화를 이용해 데이터와 알고리즘을 묶는다.

프로그램은 명령어의 집합으로 보는 것이 아니라 "여러 개의 독립된 단위, 객체들의 모임"로 인식한다.

객체들은 메세지를 주고 받는 방법으로 원하는 데이터를 처리한다.

이 방법에서는 반도체 칩과 같이 잘 만들어진 다수의 클래슫르을 먼저 개발하고 이들을 조합하여 전체 프로그램을 구현하다.

 

모듈화 된 개발이 가능하고 직관적인 코드의 분석이나 변경 및 유지 보수가 용이하기 때문에 대규모 소프트웨어 개발에 많이 사용된다.

c++나 java등이 대표적인객체지향 언어이다.

 

 

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

C++ 함수, 함수 중복(overloading)  (0) 2020.02.03
C++ 중첩 for문 -2 (파스칼 삼각형) (bionomial expansion)  (0) 2020.02.03
C++ 중첩 for문 + 예제  (0) 2020.02.01
프로그래밍 기초  (0) 2020.01.31
프로그램 개발 과정  (0) 2020.01.31