Skip to content

Latest commit

 

History

History
23 lines (18 loc) · 2.67 KB

File metadata and controls

23 lines (18 loc) · 2.67 KB

C++ 언어란?

C++ 언어는 C 언어에서 기원되어 호환성을 가진다. C 언어는 기계어와 호환성을 가지며 메모리를 직접 제어할 수 있다는 장점을 가지고 있어 운영체제, 컴파일러, 다양한 종류의 라이버리리를 개발하는데 사용되었다. 그러나 C 언어를 사용하여 애플리케이션을 개발할 경우 개발자가 세세한 기능을 개발하여야 한다.

C++ 언어는 1998년도 ISO(International Standardization Organization) 위원회에서 "ISO/IEC 149882:1998 Programming Language - C++" 로 표준을 제정되었으며 "C++98" 이라 한다. 이후 C++ 언어는 지속적으로 표준화되고 있다. C++ 언어는 2011년에 새로운 많은 기능을 표준화하였고 이를 C++11 버전이라 부룬다. C++11 버전 이전의 C++ 언어는 C 언어와 효환성을 유지하며 객체지향 개념을 도입하는데 초점을 두었다면 C++11 버전은 "표쥰 템플릿 라이브러리(STL: Standard Template Library)", "람다(Lamda)", "function 클래스롤 사용한 함수 객체", "함수를 비동기화할 수 있는 future 클래스" 가 규정되었다. 이 외에 함수 템플릿과 클래스 템플릿 개념이 규정되어 새로운 스타일의 프로그래밍 언어가 되었다.

C++ 언어 특징

C++ 언어의 객체지향 개념과 템플릿 기능을 사용하여 작성한 프로그램은 C 언어로 작성한 프로그램보다 느리다. 객체지향 언어의 중요 개념인 상속에 따른 데이터 타입 변환 또는 **다형성(polymorthism)**을 지원하기 위해서 여러 메모리 테이블이 추가되고 객체에 차지하는 메모리를 관리하는 기능들이 추가되어 일반적으로 C 언어를 적상한 프로그램보다 느리다.

  • 캡슐화(Encapsulation): 데이터를 클래스의 접근지정자를 사용하여 객체의 외부에서 데이터의 직접 접근을 못하도록 하여 보호할 수 있다. 클래스는 캡슐의 역할을 한다.
  • 상속(Inheritance): 클래스 간의 관계를 표현하는 것으로 특정 클래스("부모 클래스"라 함)의 속성과 기능을 물려받는 것을 상속이라 한다. 부모 클래스의 속성과 기능을 몰려받는 클래스를 자식 클래스라 한다. 상송은 프로그램 코드의 재사용을 가능하게 하는 개념이다. 자식 클래스의 객체가 생성될 때 자식 클래스에 선언된 멤버 뿐만 아니라 부모 클래스에 선언된 멤버도 함께 생성된다
  • 다형성(Polymorphism): 하나의 인터페이스 또는 하나의 부모 클래스를 통해 자식 클래스의 다앙한 기능을 제공한다.