예제와 함께 C와 C ++의 차이점 | 프로그래밍 언어들

주요 차이점 : C와 C ++는 서로 다른 두 가지 컴퓨터 프로그래밍 언어입니다. C ++은 C 프로그래밍 언어에서 개발되었습니다. 그러나 그들은 사실상 아주 다릅니다. 가장 분명한 차이점은 C는 프로 시저 지향 언어이고 C ++은 프로 시저와 객체 지향 프로그래밍을 모두 지원하므로 하이브리드 언어라고하는 경우가 많습니다.

C와 C ++은 두 가지 다른 컴퓨터 프로그래밍 언어입니다. C는 원래 AT & T Bell Labs의 Dennis Ritchie가 1969 년과 1973 년 사이에 개발했습니다. C ++은 또 하나의 범용 프로그래밍 언어입니다. 이것은 원래의 C 프로그래밍 언어에서 개발되었습니다. Bell Labs의 Bjarne Stroustrup에 의해 1979 년부터 개발되었습니다. C ++는 원래 C를 기반으로 C라는 클래스로 C라는 이름이 붙여졌습니다. 1983 년 C ++로 이름이 바뀌 었습니다.

C는 현재 사용되는 가장 오래된 프로그래밍 언어 중 하나이며 가장 널리 사용되는 프로그래밍 언어 중 하나입니다. 이전에 어셈블리 언어로 코딩 된 응용 프로그램에서 지속적으로 사용되었습니다. 여기에는 UNIX 컴퓨터 운영 체제가 포함됩니다. C는 C #, D, Go, Java, JavaScript, Limbo, LPC, Perl, PHP, Python 및 Unix의 C 쉘과 같은 많은 프로그래밍 언어에도 직접적으로 또는 간접적으로 영향을줍니다. 이러한 새로운 언어에도 불구하고 C는 여전히 인기있는 프로그래밍 언어입니다.

C ++은 원래 C의 기능 향상으로 시작되었습니다. C와 소스 및 링크 호환이 가능하도록 설계되었지만 클래스, 가상 함수, 연산자 오버로딩, 다중 상속, 템플릿, 예외 처리 등을 추가했습니다. 결국, 그 자체로 프로그래밍 언어로 간주되기에 충분합니다. 원래 1998 년 ISO / IEC 14882 : 1998 인증 프로그래밍 언어로 비준되었습니다. 오늘날 C ++은 이제 하드웨어 설계에 일반적으로 사용됩니다.

C는 세미콜론 (;)을 명령문 종료 자로 사용하고 중괄호 ({})를 사용하여 명령문 블록을 그룹화하는 범용 프로그래밍 언어입니다. 그것은 구조화 된 프로그래밍을위한 기능을 가지고 있으며 그 설계는 일반적인 기계 명령어에 효율적으로 매핑 할 수있는 구조를 제공합니다. 또한 어휘 변수 범위와 재귀를 허용하고 많은 의도되지 않은 작업을 방지하는 정적 유형 시스템이 있습니다.

그러나 C ++과 비교할 때 C에는 많은 제한이 있습니다. C는 객체 지향이 아니기 때문에 OOPS 개념을 지원하지 않습니다. C는 함수 및 연산자 오버로딩을 지원하지 않습니다. 구조체 내부에서 함수를 사용할 수 없습니다. 가상 함수 및 참조 변수 또는 예외 처리를 지원하지 않습니다. 또한 참조 변수를 지원하지 않습니다. 또한 C는 캡슐화 또는 데이터 보안을 제공하지 않습니다. 비교해 보면 C ++은 이러한 모든 기능을 지원합니다.

또한 C는 NAMESPACE 기능을 지원하지 않지만 C ++은 지원하지 않습니다. 네임 스페이스는 식별자 (유형, 함수, 변수 등의 이름)를 그룹화 할 수있는 명확한 영역입니다. 네임 스페이스를 사용하여 코드를 논리적 그룹으로 구성하고 이름 충돌을 방지 할 수 있습니다. 이는 특히 코드베이스에 여러 라이브러리가 포함되어있을 때 코드가 충돌하는 경향이있는 경우에 특히 유용합니다.

또한 두 언어는 주소 메모리 기능, 입 / 출력 및 GUI 프로그래밍 방식이 다릅니다. 예를 들어, C는 calloc (), malloc () 및 free () 함수를 사용하여 메모리를 할당 및 할당 해제하고 C ++은 new 및 delete를 사용합니다. C는 입출력을 위해 scanf () 및 printf ()를 사용하고 C ++은 cin >> 및 cout << 연산자를 사용합니다. C는 GUI 프로그래밍을위한 GTK 도구를 지원하지만 C ++은 GUI 프로그래밍을위한 Qt 도구를 지원합니다. 또 다른 차이점은 C는 프로그램 상단의 모든 변수를 선언해야하지만 C ++에서는 변수가 프로그램의 어느 곳에서나 선언 될 수 있다는 것입니다.

또한 C ++은 일반적으로 C보다 사용하기 쉽기 때문에 배울 것이 더 쉬운 것으로 간주됩니다. C ++에는 특히 C 프레임 워크를 처음 접하는 사람에게 코딩을 쉽게 해주는 추가 기능이 많이 있습니다. 그러나 많은 사람들이 그것이 실제로 중요하다고 주장합니다. 두 언어는 너무 많이 다르므로 두 언어가 서로 독립적으로 존재할 수 있습니다. 한 가지 명심해야 할 것은 C는 C ++보다 훨씬 구조화 된 반면 C ++은 C보다 표현력이 풍부하고 추상적으로 설계되었습니다.

C와 C ++의 비교 :

기음

C ++

설립

1969 년부터 1973 년까지 AT & T Bell Labs의 Dennis Ritchie가 개발했습니다.

1979 년 벨 연구소 (Bell Labs)의 비얀 스트로 우 스트롭 (Bjarne Stroustrup)이 개발했습니다.

소스 코드

자유 형식 프로그램 소스 코드

원래 C 프로그래밍 언어로 개발되었습니다.

언어

절차 중심 언어

절차 적 및 객체 지향 프로그래밍 패러다임을 모두 지원합니다. 따라서 종종 하이브리드 언어라고합니다.

접근

하향식 접근법을 따릅니다.

상향식 접근법을 따른다.

관계

C는 C ++의 하위 집합입니다. C ++ 코드를 실행할 수 없습니다.

C ++는 C의 상위 집합입니다. C ++은 C 코드의 대부분을 실행할 수 있지만 C는 C ++ 코드를 실행할 수 없습니다.

드라이브

함수 중심 언어

객체 중심 언어

초점

데이터보다는 방법 또는 프로세스에 중점을 둡니다.

방법이나 절차보다는 데이터에 중점을 둡니다.

빌딩 블록

기능들

사물

키워드

32 개의 키워드가 들어 있습니다.

52 개의 키워드 포함

수확량 개념

'C'언어는 프로 시저 지향 언어이므로 클래스, 객체, 상속, 다형성, 데이터 숨기기 등과 같은 OOPS 개념을 지원하지 않습니다.

C ++은 객체 지향 언어로서 클래스, 객체, 데이터 숨김, 다형성, 상속, 추상화 등을 지원합니다.

기능들

  • 함수 및 연산자 오버로딩을 지원하지 않습니다.
  • 구조체 내부에서 함수를 사용할 수 없다.
  • 가상 함수 및 참조 변수를 지원하지 않습니다.
  • 예외 처리를 지원하지 않습니다.
  • 참조 변수를 지원하지 않습니다.
  • 네임 스페이스 기능이 없습니다.
  • 다른 함수를 통해 main () 함수를 호출 할 수있다.
  • 함수 및 연산자 오버로딩을 지원합니다.
  • 구조 내부에서 함수를 사용할 수 있습니다.
  • 가상 함수 및 참조 변수를 지원합니다.
  • try 및 catch 블록을 사용하여 예외 처리를 지원합니다. 예외는 코드를 부정확하게 만드는 "하드"오류에 사용됩니다.
  • 참조 변수 지원
  • 이름 충돌을 피하는 NAMESPACE 기능을 사용합니다.
  • 다른 함수를 통해 main () 함수를 호출 할 수 없습니다.

메모리 함수

메모리 할당 및 할당 해제에 calloc (), malloc () 및 free () 함수를 사용합니다.

새로운 연산자를 사용하고 동일한 목적으로 삭제합니다.

캡슐화

지원하지 않습니다. 데이터와 함수는 별도의 자유 개체입니다.

캡슐화를 지원합니다. 데이터와 함수는 객체의 형태로 함께 캡슐화됩니다. Objects 클래스는 객체 구조의 청사진을 제공합니다.

정보 숨기기

C는 정보 숨기기를 지원하지 않습니다. 여기서 데이터는 자유 엔티티이며 외부 코드로 조작 할 수 있습니다.

캡슐화는 데이터 구조와 연산자가 의도 한대로 사용되도록 데이터를 숨 깁니다.

데이터

기본 제공 및 원시 데이터 형식을 지원합니다.

비 객체 지향으로 인해 데이터가 보호되지 않습니다.

내장 및 사용자 정의 데이터 유형을 모두 지원합니다.

C ++에서 데이터 보안 (숨김)

수평

저수준 언어

중간 수준 언어

입출력

'C'언어는 입출력을 위해 scanf () 및 printf ()를 사용합니다.

'C ++'언어는 입출력을 위해 cin >> 및 cout << 연산자를 사용합니다.

변수 선언

C는 프로그램 상단에 모든 변수를 선언해야합니다.

C ++에서 변수는 사용하기 전에 프로그램의 어느 위치에서나 선언 할 수 있습니다.

다중 선언

전역 변수의 다중 선언이 허용됩니다.

전역 변수에 대한 다중 선언은 허용되지 않습니다.

매핑

데이터와 함수 간의 매핑은 어렵고 복잡합니다.

데이터와 함수 사이의 매핑은 "Objects"를 사용하여 사용할 수 있습니다.

GUI 프로그래밍

GUI 프로그래밍을위한 GTK 툴 지원

C ++은 GUI 프로그래밍을위한 Qt 툴을 지원합니다.

계승

C에서 상속을 사용할 수 없습니다.

C ++에서 상속 가능

파일 확장자

파일 확장명이 .c입니다.

파일 확장명이 .cpp입니다.

기본 헤더 파일

C 언어에서 사용되는 기본 헤더 파일은 stdio.h입니다.

C ++에서 사용되는 기본 헤더 파일은 iosteam.h입니다.

C와 C ++의 차이점에 대한 몇 가지 예 :

예제들

기음

C ++

변수 선언

상단에서만 :

int i;

for (i = 10; i <10; i ++)

프로그램의 어느 곳에서나 :

for (int i = 10; i <10; i ++)

메모리 할당

Malloc :

int * x = malloc (sizeof (int));

int * x_array = malloc (sizeof (int) * 10);

새로운:

int * x = 새로운 int;

int * x_array = 새로운 int [10];

메모리 방출

비어 있는:

무료 (x);

무료 (x_array);

지우다:

x를 삭제하십시오;

delete [] x_array;

추천

관련 기사

  • 대중적 비교: Pinocytosis와 Phagocytosis의 차이

    Pinocytosis와 Phagocytosis의 차이

    주요 차이점 : Pinocytosis는 액체의 흡수이며, phagocytosis는 본질적으로 세포의 음식 인 고체 물체의 흡수입니다. pinocytosis 및 phagocytosis 모두 endocytosis의 유형입니다. 엔도 솜 증은 세포를 삼켜서 분자를 흡수하는 과정입니다. 이러한 분자는 종종 세포의 존재에 중요한 단백질 및 기타 물질을 포함합니다. 분자가 소수성 혈장 또는 세포막을 통과 할 수없는 큰 극성 분자이기 때문에 엔도 시토 시스 과정이 모든 세포에 사용됩니다. Pinocytosis는 액체의 흡수이며, phagocytosis는 본질적으로 세포의 음식 인 고체 물체의 흡수입니다. 거의 모든 세포가 피노 사이토 시스를 수행하지만 식균 작용은 박테리아, 세포 잔해 및 기타 비정상적인 물질
  • 대중적 비교: 위키피디아와 위키 미디어의 차이점

    위키피디아와 위키 미디어의 차이점

    주요 차이점 : 위키피디아는 위키 미디어 재단의 온라인 인터넷 백과 사전 사이트이며, 위키피디아는 다양한 사이트와 프로젝트를 운영하는 큰 온라인 기반입니다. 'Wikipedia' 라는 이름 (위키 백과 사전의 포만 토)은 Sanger에 의해 만들어졌습니다. Wikipedia는 무료 인터넷 온라인 백과 사전 사이트 중 하나이며, 비영리 단체 인 ' Wikimedia Foundation'이 지원 합니다. 일반 주제 및 주제를 포함하는 온라인 백과 사전입니다. 이 기사는 종종 전문가가 작성하고 공식 프로세스를 통해 검토합니다. 공개 사이트이므로 주제와 관련된 지
  • 대중적 비교: Nokia Lumia 925와 Blackberry Z10의 차이점

    Nokia Lumia 925와 Blackberry Z10의 차이점

    주요 차이점 : 노키아는 최근 자사의 새로운 주력 전화 인 Nokia Lumia 925를 발표했다.이 전화기에는 4.5 인치 AMOLED 커패시 티브 터치 스크린이 장착되어 있으며 전면에 스피커와 센서가있어 공간을 많이 차지한다. 4.5 인치 용량 성 스크린에는 Lumia 920에서 발견되는 것과 동일한 PureMotion HD +, ClearBlack이 있습니다. Blackberry Z10은 Research in Motion에서 2013 년 1 월에 출시 된 최신 스마트 폰입니다. Z10은 대략 355ppi의 픽셀 밀도를 갖는 4.2 인치 용량 성 터치 스크린과 함께 사용할 수있는 바폰이며 명확하고 선명한 디스플레이를 제공합니다. 지원하는 경우 1.5GHz 듀얼 코어 Krait, 16GB 내부 저장 용량 및 최대
  • 대중적 비교: 탁아와 베이비 시터의 차이점

    탁아와 베이비 시터의 차이점

    주요 차이점 : 탁아소 란 학부모 / 보호자가 근무 시간 중에 보살핌을받을 자녀를 내려주는 교육 기관을 의미합니다. 베이비 시팅은 아이가 일시적으로 감시되는 행위입니다. 베이비 시터는 탁아소의 한 형태입니다. 데이 케어 (daycare)는 이름으로 알 수 있듯이, 부모 / 보호자가 업무 책임으로 인해 그렇게 할 수 없기 때문에 낮 시간 동안 돌보고있는 아동의 행동을 말합니다. 데이 케어는 종종 일하는 부모에게 불가피하며 대부분의 경우 보탬이됩니다. 이런 기관에서 아이들을 떨어 뜨리는 것은 부모가 자녀의 안전과 보안 등에 대해 걱정할 필요가 없으므로 일에 집중할 수 있음을 의미합니다. 탁아소는 탁아소 또는 아동 기숙사에서 실시 할 수 있습니다. 보육원은 보모 보육, 탁아, 가족 보육 등과 같은 하위 변종으로 구성됩니다. 베이비 시팅은 아이가 일시적으로 감시되는 행위입니다. 베이비 시팅은 사실 보육원의 한 형태입니다. 이 시설은 자녀들을 보살피기 위해 집에서 돌아 다니지 못하
  • 대중적 비교: Varchar와 Nvarchar의 차이점

    Varchar와 Nvarchar의 차이점

    주요 차이점 : SQL 서버에서 둘 다 데이터 유형을 참조합니다. Varchar는 가변 길이 문자열을 나타냅니다. Varchar는 ASCII 데이터를 저장하지만 Nvarchar는 UNICODE 데이터를 저장합니다. 데이터 유형은 데이터 형식을 설명하는 데 중요한 역할을합니다. 데이터 저장에 유용합니다. 두 가지 데이터 유형은 varchar 및 nvarchar입니다. Varchar는 가변 길이 문자열을 나타냅니다. Varchar는 기본적으로 열에 저장된 문자 수와 동일한 바이트 수를 차지합니다. Varchar는 비 유니 코드 문자가 저장 될 때 사용됩니다. 삽입
  • 대중적 비교: 홍역과 수두의 차이

    홍역과 수두의 차이

    주요한 차이 : 홍역은 Morbillivirus 속의 Paramyxovirus 바이러스에 의해 유발되는 호흡기 질환입니다. 수두는 어린이가 수두를 앓는 가장 흔한 질병 중 하나이며 수두 대상 포진 바이러스 (VZV)로 인해 발생합니다. 홍역과 수두는 사람이 아이가되었을 때 겪는 가장 일반적인 유형의 질병입니다. 이러한 질병들은 성공적인 백신의 광범위한 사용으로 인해 희귀 해지고 있습니다. 두 질병 모두 붉은 반점의 형태로 발진을 일으키지 만 서로 다르다. 홍역은 Morbillivirus 속의 Paramyxovirus 바이러스에 의해 유발되는 호흡기 질환입니다. 홍역, morbilli 또는 rubeola라고도하는 홍역은 단일 가닥의 음성 감수성 RNA 바이러스입니다.
  • 대중적 비교: 브로셔와 투자 설명서의 차이점

    브로셔와 투자 설명서의 차이점

    주요 차이점 : 브로셔와 팜플렛은 동의어입니다. 브로셔는 회사 또는 조직에서 소개 한 신제품에 대해 사람들에게 알리는 데 사용되는 작은 책자 또는 팜플렛입니다. 한편, 안내서는 다양한 옵션과 행동 계획을 제공하는 인쇄 된 광고입니다. 브로셔와 안내서는 두 가지 단어로 종종 혼란을 야기하며 많은 사람들은이를 서로 바꾸어 사용합니다. 그러나, 그들은 서로 약간 다릅니다. 브로셔 는 팜플렛 으로도 지정됩니다. 브로셔는 일반적으로 휴일이나 제품에 대한 정보를 제공하는 데 사용되는 작은 책자입니다. 이것은 종이 광고의 한 형태이며 공공 장소에서 직접 또는 우편을 통해 배
  • 대중적 비교: LG Optimus L7 II Dual과 Nokia Lumia 720의 차이점

    LG Optimus L7 II Dual과 Nokia Lumia 720의 차이점

    주요 차이점 : LG 옵티머스 L7 II 듀얼은 LG의 미드 세그먼트 폰입니다. 전화는 듀얼 SIM 전화입니다. 이 디바이스는 4.3 인치 IPS LCD, 480 x 800 픽셀의 용량 성 터치 스크린을 특징으로한다. 1.0GHz 듀얼 코어 퀄컴 MSM8225 스냅 드래곤 프로세서와 768MB RAM에 의해 뒷받침되는 안드로이드 v 4.1.2 (JellyBean)에서 실행됩니다. Nokia Lumia 720은 자사의 주력 제품인 Lumia 920과 유사한 최신 휴대폰 중 하나입니다. Lumia 720에는 1GB 듀얼 코어 Snapdragon S4 프로세서 (512MB RAM 및 8GB 내부 저장 공간)가 포함되어 있으며 64GB로 업그레이드 할
  • 대중적 비교: Telangana와 Rayalaseema의 차이점

    Telangana와 Rayalaseema의 차이점

    주요 차이점 : Telangana와 Rayalaseema는 인도의 두 지역입니다. 안드라 프라데시 주 (州)는 텔란가나, Rayalaseema 및 안드라 해안 지역의 3 개 지역으로 이루어져 있습니다. Telangana와 Rayalaseema는 인도의 두 지역입니다. 안드라 프라데시 주 (州)는 텔란가나, Rayalaseema 및 안드라 해안 지역의 3 개 지역으로 이루어져 있습니다. Telangana는 주 북부, 동부 해안 안드라 지역 및 남쪽의 Rayalaseema에 거주합니다. Telangana와 Rayalaseema는 모두 Nizams에 의해 지배 된 Hyderabad State의 일부였다. 그러나 영국 시대에 하이데라바드의 Nizam은 Rayalaseema 지역을 영국에 양도했다. Rayalaseema는 Anantapur

에디터의 선택

삼성 갤럭시 S 듀오와 노키아 루미아 620의 차이점

주요 차이점 : 삼성 Galaxy S Duos는 2012 년 9 월에 출시 된 듀얼 SIM 폰입니다.이 휴대 전화에는 약 233ppi 밀도의 4 인치 TFT 커패시 티브 터치 스크린이 제공됩니다. 이 기기는 안드로이드 4.0.4 ICS에서 삼성의 TouchWiz UI를 제공한다. Nokia Lumia 620은 480 x 800 픽셀의 해상도를 가진 3.8 인치 화면을 특징으로합니다. Qualcomm Snapdragon S4 듀얼 코어 1GHz Krait와 512MB RAM이 특징입니다. 이 제품은 8GB 내부 저장 용량과 최대 64GB까지 확장 가능한 외부 저장 장치를 갖추고 있습니다. 처음에는 스마트 폰이 두 가지 범주로