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는 여전히 시스템 프로그래밍에서 필수적인 역할을 수행하며, 성능과 직접적인 하드웨어 제어가 중요한 분야에서 강점을 가집니다.