이전 포스팅에서는 C언어란 무엇인지, 배워야 하는 이유와 장단점을 알아보았었습니다.
오늘은 C언어에서 한 단계 발전한 C++에 대해 알아보도록 하겠습니다.
『 C++란? 』
C언어에서 객체 지향 프로그래밍 기능을 추가하여 만든 언어입니다.
C언어처럼 절차 지향으로, 추가된 기능인 객체 지향으로, 그리고 템플릿을 이용한 일반화 프로그래밍 까지 할 수 있는데요
추가된 기능으로는 클래스 개념과 가상 함수, 연산자 중복 정의, 다중 상속, 템플릿, 예외 처리 등이 있으며,
1. 엄격한 타입 검사, 범용 언어
2. 여러 가지의 프로그래밍 스타일을 지원(절차 지향, 객체 지향, 일반화)
3. 프로그래머가 자유롭게 선택할 수 있도록 설계
4. 최대한 C언어와의 호환
5. 플랫폼에 의존적이거나 일반적이지 않은 특징은 제거
이 언어의 개발자는 언어를 개발하면서 위의 5가지의 원칙을 세웠습니다.
『 C언어와 C++의 차이 』
먼저, C++ 만 배워도 된다는 사람도 있지만 기본이 C언어가 모든 언어의 기본이라고 생각하면 됩니다.
문법이 간결하고 속도도 빠른 C언어 이후의 언어들은 거의 C언어의 문법을 많이 썼는데요. 자바 또한 마찬가지입니다.
자바도 C언어하고 C++을 공부한 사람들은 초반에는 쉽게 익숙해질 수가 있으며
C언어의 문법 자체를 그대로 가져온 것이라 C언어와 C++의 차이점은 C언어에 객체지향이 더해진 것입니다.
흔히 자바를 배울 때 '클래스'라는 말들을 많이 들으실 텐데, '클래스'가 객체지향이 도입되면서 생겨난 것입니다
기존의 C언어는 함수를 만들어서 그 함수를 필요할 때만 갖다 썼는데 클래스는 그 함수 까지 포함하고 있으며,
클래스라는 게 생기면서 각각 함수들이 어느 클래스 영역에 포함되게 되고,
C++에서 '++'이라는 뜻이 C언어 문법에서 '+1'이라는 뜻과 같다고 보시면 되는데 쉽게 말해
'C언어는 C+이며 C++는 C+에 객체지향을 더했다, 그래서 C++이다.' 라고 보시면 된답니다.
『 C++의 특징 』
객체지향 언어인 C++는 C언어의 특징 대부분들 포함하여
데이터 캡슐화, 상속성, 다형성이라는 3가지 특징을 더 가지고 있습니다.
1. 데이터 캡슐화
객체 내부의 데이터를 외부에서 직접 접근할 수 없게 만들고, 객체의 인터페이스를 통해서만 데이터에 접근할 수 있게 만드는 것.
2. 상속성
이미 만들어진 객체를 "상속"받아 그것을 기반으로 새로운 객체를 설계할 수 있는 것.
3. 다형성
동일한 인터페이스를 가지고 객체마다 다르게 구현할 수 있는 것.
클래스는 이러한 객체지향 개념을 지원하기 위해 다양한 기능을 가지고 있습니다.
이렇게 C++란 무엇인지, C언어와의 차이점, 특징을 알아보았는데요!
C++는 간단하게
"C++은 데이터와 함수를 하나로 묶고 그것을 '객체'라는 단위로 표현할 수 있는 객체지향 언어이다."
라고 보시면 될 거 같습니다.
'게임개발과정 > 게임프로그래밍' 카테고리의 다른 글
게임프로그래밍 네번째 코딩 (0) | 2018.03.05 |
---|---|
게임프로그래밍 세번째 C# (0) | 2018.03.05 |
게임프로그래밍 첫번째 C언어 (0) | 2018.03.02 |
인천코딩학원 기초코딩반 개설 [SBS아카데미게임학원] (0) | 2018.02.20 |
부천/중동/상동/송내 코딩학원 (0) | 2018.02.09 |