본문 바로가기

Info

Info - 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)을 부여하는 의미입니다
즉, 같은 기능을 중복해 사용하는 것을 막기 위함입니다



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


'Info' 카테고리의 다른 글

Info - 북마크 백업  (0) 2016.08.31
Info - IPSec  (0) 2016.08.31
Info - 유니코드 멀티바이트  (0) 2016.08.31
Info - 유니코드와 멀티바이트  (0) 2016.08.31
Info - ASCII, ANSI, 유니코드, UTF-8 설명  (0) 2016.08.31