Programming/C&C++

[펌] C와 C++ 비교

bemaru 2014. 11. 29. 17:31
반응형


출처 : http://minamjun11.egloos.com/viewer/964423

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)을 부여하는 의미입니다

즉, 같은 기능을 중복해 사용하는 것을 막기 위함입니다




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)과 친구, 직장 동료들이 만들었습니다




반응형