디필의 요모조모

명품 C++ Programming 1장 요약 본문

Programming Language/C++

명품 C++ Programming 1장 요약

Diphylleia12 2020. 10. 13. 20:28

C++ 시작

 

컴퓨터와 프로그래밍

  • 전문가들은 소프트웨어가 주목받는 세상이 왔고, 이 시대의 IT 세계를 지배할 것으로 예측한다.
  • 소프트웨어는 컴퓨터의 중앙처리장치(CPU)가 이해할 수 있는 일련의 명령들과 데이터로 구성되며, CPU는 이 명령들을 실행함으로써 요구된 기능을 수행한다.
  • 프로그래밍 언어는 0과 1의 이진수로 구성되는 기계어기계어의 각 명령어를 ADD, SUB, MOVE 등과 같은 상징적 니모닉 기호로 일대일 대응시킨 어셈블리어사람의 언어에 보다 가까운 C, C++, Java 등의 고급 언어로 진화하였다.
  • 고급 언어는 컴파일러에 의해 기계어로 변환되고어셈블리어 프로그램은 어셈블러라는 시스템 프로그램에 의해 기계어로 변환된다대부분의 경우 컴파일러는 기계어로 변환할 때 어셈블러를 이용한다.

C++ 언어의 역사

  • C++ 1967 BCPL 언어에서 태동하여, 1970 B, 1972 C 언어로 진화하고, 1979년 Bjarne Stroustrup에 의해 만들어져 1983년 C++로 정식 명칭을 갖게 되었다.
  • 표준 C++ 규칙에 맞게 작성된 C++ 프로그램은 하드웨어운영체제 플랫폼에 상관없이 표준 C++ 컴파일러에 의해 컴파일되고 동일한 실행 결과가 보장된다.

C++ 언어의 특징

  • C++ 언어의 주요한 설계 목표는 C 언어와의 호환성, 객체 지향 개념 도입, 엄격한 타입 체크, 실행 시간의 효율성 저하 최소화 등이다.
  • C++ 언어에서 언어에 추가적으로 도입한 기능은함수 중복디폴트 매개 변수참조와 참조 변수참조에 의한 호출, new와 delete 연산자연산자 재정의제네릭 함수와 제네릭 클래스 등이다.
  • C++객체 지향 특성으로는 캡슐화상속다형성 등이며, C++에서 객체 지향 특성을 도입한 목적은 소프트웨어의 생산성을 향상하고실세계 문제를 쉽게 모델링하기 위한 것이다.
  • 실행하고자 하는 절차대로 명령어를 나열하여 프로그램을 작성하는 방법을 절차 지향 프로그래밍이라고 부른다.
  • 실제 세상과 가깝게 모델링하기 위해응용에 필요한 물체(객체)를 모델링하고이들 간의 관계상호 작용을 표현하는 프로그래밍 기법이 객체 지향 프로그래밍 이다.
  • 제네릭 프로그래밍은 동일한 프로그램 코드에 다양한 데이터 타입을 적용할 수 있도록 클래스와 함수를 일반화시킨 제네릭 함수와 제네릭 클래스를 활용하는 기법이다.
  • C++ 언어는 언어와의 호환성으로 인해 클래스 바깥에 변수를 선언할 수 있도록 허용함에 따라 캡슐화의 원칙이 무너졌다. 

C++ 프로그램의 개발 과정

  • C++ 프로그램은 C++ 소스 프로그램의 편집, 컴파일, 링킹 과정으로 세분화된다. 그리고 실행 오류를 수정하는 작업을 디버깅이라고 부른다.
  • C++ 소스 프로그램은 표준 확장자가 .cpp인 텍스트 파일로서 아무 텍스트 편집기로 작성 가능하다
  • C++ 컴파일러로 생성된 목적 코드는 바로 실행할 수 없고링킹 과정을 거쳐야 한다.
  • Visual Studio와 같이 C++ 프로그램 작성컴파일링킹실행디버깅 등 C++ 프로그램 개발에 필요한 모든 도구를 지원하는 C++ 통합 개발 환경을 사용하는 것이 좋다.

C++ 표준 라이브러리

  • C++ 표준 라이브러리는 C 라이브러리, C++ 입출력 라이브러리, STL 라이브러리의 3그룹과 기타로 구분되며, C 라이브러리를 제외한 두 그룹은 템플릿(제네릭)으로 작성되어 있다.
Comments