티스토리 뷰

C와 C++의 차이

C언어는 C++와 달리 다양한 패러다임이 있는 언어이다.

그 차이를 표로 간단히 알아보자.

 

차이점 C C++
패러다임
Paradigm
절차지향 (Procedure-Oriented) 다중 패러다임 언어
1. 객체지향 프로그래밍 (OOP)
2. 일반화 프로그래밍 (Generic Programming)
접근성
Approach
하향식 설계 (Top-down) 상향식 설계 (Bottom-up)
네임스페이스
Namespace
없음 있음
상속
Inhertance
없음 있음
다형성
Polymorphism
없음 있음
템플릿
Template
없음 있음
레퍼런스
&reference
없음 있음
구조체 생성자
struct constructor
없음 있음
메모리 할당
Memory Allocation
malloc(), calloc(), realloc() new
메모리 해제
Memory Deallocation
free() delete

 


패러다임

먼저 패러다임을 살펴보면 C++는 Multi-paradigm 언어이다.

이는 절차지향인 C와 달리 C++는 다음 모두를 지원하는 언어이기 때문이다.

 

  1. 절차지향 프로그래밍 (Procedure-Oriented Programming)
    1. 프로시저 호출의 개념을 바탕으로 구조적 프로그래밍의 일종
    2. 프로그램이 동작하는 절차에 중점을 둔 방식이다.
  2. 객체지향 프로그래밍 (Object-Oriented Programming)
    1. 데이터와 절차를 하나의 덩어리로 묶어서 생각
    2. 캡슐화, 상속, 다형성을 통해 코드의 유연성을 늘렸다
  3. 일반화 프로그래밍 (Generic Programming)
    1. 어떤 자료형이든 받아줄 수 있는 제너릭 상태 지원
    2. 특수한 개념으로 공통된 개념을 찾아 묶는 것

 


데이터 흐름(Flow)

Top-Down Bottom-Up
큰 문제를 작게 쪼개는 방식 작은 문제를 해결할 수 있는 객체들을 만들어 조합하는 방식
상위로부터 하위로 쪼개어나가는 방식을 말하는 것이다. 각 객체가 독릭접 운용이 가능하고 외부 접근이 가능한 인터페이스를 제한하여 오류를 최소화한다.
함수 단위로 나누어 구조화하는 구조적 프로그래밍이 대두되면서 데이터를 처리부분은 구조화가 가능했지만 데이터를 구조화하지 못하여 자료형, 데이터의 상태, 데이터 처리 방식이 다른 함수가 늘어날때마다 분석 및 수정의 시간이 늘어났다. 의존성(하나의 객체의 코드 수정이 다른 객체에 영향을 주는 정도)차이에 따라 다르게 나타날 수 있다.
  1. 약한 결합 관계(Weak coupling)
  2. 강한 결합 관계(Strong coupling))

 


참고 사이트

 

[객체지향] Object-Oriented Programming 핵심 개념의 이해

배경 데이터 흐름(Flow)에 기반한 절차지향적 프로그래밍 방법은 복잡한 로직을 갖는 큰 규모의 소프트웨어 개발에는 적합하지 않습니다. 하드웨어 성능이 폭발적으로 성장하면서 요구되어지는

gracefulprograming.tistory.com

 

C와 C++의 간단한 철학

일반적으로 컴퓨터 언어는 데이터와 알고리즘 이 두 가지 개념을 다룬다. Data : 프로그램이 사용하고 처리하는 정보Algorithm : 프로그램이 데이터를 처리하는 방법 -> Program = Data + Algorithm ; C는 절

dailyoscar.tistory.com

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함