2. C와 C++의 차이점

1. 개요

1.1 문서 개요

이 문서는 C와 C++의 차이점에 관해 기록하는 문서입니다.

2. 내용

2.1 주요 차이점

항목 C 언어 C++ 언어
패러다임 절차지향 객체지향 및 다중 패러다임
코드 재사용 함수 중심 클래스 및 상속 지원
표준 라이브러리 표준 C 라이브러리 STL(Standard Template Library) 포함
함수 오버로딩 지원하지 않음 지원
네임스페이스 없음 있음 (namespace)
예외 처리 제한적 try-catch 지원

2.2 코드 예시 비교

2.2.1. C 언어 예제: 구조체와 함수 사용

#include <stdio.h>
#include <string.h>

struct Person {
    char name[50];
    int age;
};

void introduce(struct Person p) {
    printf("Name: %s\n", p.name);
    printf("Age: %d\n", p.age);
}

int main() {
    struct Person p1;
    strcpy(p1.name, "Alice");
    p1.age = 30;

    introduce(p1);
    return 0;
}

2.2.2. C++ 예제: 클래스와 객체지향 사용

#include <iostream>
#include <string>

class Person {
public:
    std::string name;
    int age;

    Person(std::string n, int a) : name(n), age(a) {}

    void introduce() {
        std::cout << "Name: " << name << std::endl;
        std::cout << "Age: " << age << std::endl;
    }
};

int main() {
    Person p1("Alice", 30);
    p1.introduce();
    return 0;
}

이 예시를 통해 C와 C++ 간의 코드 구조와 객체지향적 접근의 차이를 명확히 볼 수 있습니다.

2.3 기능 확장성과 유지보수성

  • C++은 캡슐화, 상속, 다형성과 같은 객체지향 개념을 통해 대규모 소프트웨어 설계에 적합합니다.
  • C는 단순성과 성능 중심으로 임베디드 시스템, 커널, 저수준 프로그래밍에 강점을 가집니다.

3. 마무리

C++은 C 언어를 기반으로 다양한 기능을 확장한 언어로, 객체지향 설계를 통해 더 구조적이고 유지보수에 용이한 코드를 제공합니다.
C는 여전히 시스템 프로그래밍에서 필수적인 역할을 수행하며, 성능과 직접적인 하드웨어 제어가 중요한 분야에서 강점을 가집니다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

error: Content is protected !!
위로 스크롤