본문 바로가기
C++ 200제/코딩 IT 정보

C언어와 C++ 차이점 비교 (객체지향과 하향식)

by vicddory 2017. 5. 21.

C언어와 C++ 차이점 비교 (객체지향과 하향식)


C++은 C++이란 이름에서 나타나듯, C의 Superset입니다. 그래서 C는 C++의 코드를 실행할 수 없습니다.



1. C는 절차적 프로그래밍(Procedural), C++은 다중 패러다임 언어(Multi paradigm)

C는 프로그램의 함수 간의 단계나 절차에 초점이 맞춰지나, C++은 프로세싱 과정보단, 개별 데이터에 초점이 맞춰집니다. 그래서 C++의 소스 코드를 구현 / 수정하는 것이 더 쉽습니다(상대적으로).


2. C는 데이터의 보안(Secured)이 불가능하나, C++은 데이터의 보안(Secured Hidden)이 가능

구체적으로는 OOP(객체지향 프로그래밍)의 장점이라고 할 수 있습니다. C는 가질 수 없는....


3. C는 low-level 중에서도 중간 수준(middle-level)의 언어

C는 low-level의 언어(해석/설명/이해하기 힘들고, 사용자 중심이 아님)이나, C++은 low-level(하드웨어에 집중)과 high-level(프로그램에 집중)의 특징을 모두 보유합니다.

그래서 C++은 전체 언어 중에서도 중간 수준(middle-level)의 언어로 분류할 수 있습니다.


4. C는 하향식 접근 방식(top-down), C++은 상향식 접근 방식(bottom-up)을 사용

C는 기본 요소 간의 순차적 수행이 되도록 서로 간의 연결이 중요해, 단계별 공식화(linked-together) 이후 세부 사항으로 나뉩니다.


5. C는 함수 기반(function-driven), C++은 객체 중심(object-driven)

C 프로그램은 함수 중심으로 구축되고, C++은 객체 중심으로 구축이 됩니다.


6. C는 지원하지 않는 오버로딩(Overloading)을 C++은 지원

오버로딩은 같은 이름을 가진 두 함수를 의미합니다. OOP의 다형성이란 특성 중 하나입니다.


7. 구조체(Structure) 안에서 함수(function) 사용

C++은 할 수 있지만, C는 하지 못하는 것입니다.


8. NAMESPACE가 C++엔 있으나 C엔 없음

NAMESPACE의 기본 기능은 충돌 방지입니다.


예를 들면, 다른 대학의 두 학생이 같은 학번을 가질 수 있으나, 같은 대학의 두 학생이 같은 학번을 가질 순 없습니다. 같은 대학(one namespace)에서 두 학생을 구분하기 위해 서로 다른 학번(identifier)을 부여하는 의미입니다. 즉, 같은 기능을 중복해 사용하는 것을 막기 위함입니다.


C언어와 C++ 차이점 비교 (객체지향과 하향식)C언어와 C++ 차이점 비교 (객체지향과 하향식)


9. 표준 입출력(standard input & output)의 차이

C는 scanf와 printf를 사용하지만, C++은 cin>>과 cout<<을 사용해 표준 입출력의 차이를 보입니다


10. C++은 참조 변수(reference variable) 허용

참조 변수는 두 변수가 같은 메모리 위치를 참조(reference)할 수 있습니다. 그러나 C에서는 참조 변수를 사용할 수 없습니다.


11. C++은 예외 처리(Exception handling)를 지원

C는 "공식적(Formally)"으론 지원하지 않지만, 다른 방법(user creative method)을 이용해 사용할 순 있습니다. 일반적으론 C에서 사용할 throw&catch 함수는 개인 사용자에게 제공되는 프레임워크엔 포함되지 않습니다.


12. 알파벳이 다릅니다

C의 뜻은, "C language" 이고, C++의 뜻은, "C plus plus language"입니다


13. 두 언어의 제작자가 다릅니다

C는 데니스 리치(Dennis Ritchie)와 친구, 직장 동료들이 만들었고, C++는 뱐 스트라우스트럽(Bjarne Stroustup)과 친구, 직장 동료들이 만들었습니다.


ps. 가장 큰 차이점, c는 발음이 그냥 "씨"지만, c++은 "씨쁠쁠", "씨플러스플러스", "씨쁠" 등으로 불립니다.


C언어와 C++ 차이점 비교 (객체지향과 하향식)

댓글