목차
C++ 특징
C++도 C처럼 main() 함수에서 시작하고, 반드시 하나의 main() 함수를 포함해야 합니다.
C++는 절차지향인 C에 객체지향 개념을 추가하여 업그레이드 한 컴퓨터 프로그래밍 언어입니다.
따라서 C++는 C의 기능을 모두 사용할 수 있습니다.
1. 표준 입출력 라이브러리
C의 #include <stdio.h>를 C++는 #include <iostream>의 cin, cout, endl을 사용해서 처리합니다.
입력 : std::cin >> num;
출력 : std::cout << num << std::endl;
endl은 줄 바꿈을 의미합니다.
2. 네임 스페이스
네임스페이스는 std:: 처럼 적힌 코드를 의미합니다.
프로그램을 만들다 보면 여러 명이 개발하게 되고, 함수나, 구조체 등에서 이름 충돌이 발생할 수 있습니다.
구분을 위해 소속을 정해주는 것으로, 보통 회사에서는 팀이나 사용자 이름을 씁니다.
네임스페이스를 알려주면 std::를 생략할 수 있습니다.
#include <iostream>
using namespace std;
cin >> num;
cout << num << endl;
3. 함수 오버로딩
같은 이름을 가진 함수를 여러 개 정의할 수 있는 기능입니다. 함수의 매개변수 유형, 개수, 순서가 다르면 같은 이름의 함수를 여러 개 만들 수 있어서, 이를 통해 프로그래머는 같은 동작을 하는 함수를 일관된 이름을 쓸 수 있습니다.
4. 클래스
클래스는 객체지향 언어에서 지원하는 기능으로, 데이터(변수)와 함수(기능)를 하나로 묶어 놓은 틀을 말합니다.
C++는 이 틀을 이용해 객체를 만들 수 있고, 만들어진 객체를 통해 프로그램 전체가 동작하도록 코드를 작성하게 됩니다.
#include <iostream>
#include <string>
// Car 클래스 정의
class Car {
public:
std::string brand;
std::string model;
int year;
// 생성자
Car(std::string x, std::string y, int z) {
brand = x;
model = y;
year = z;
}
// 메소드
void printDetails() {
std::cout << "Brand: " << brand << ", Model: " << model << ", Year: " << year << std::endl;
}
};
int main() {
// Car 객체 생성
Car car1("현대", "소나타", 2002);
Car car2("기아", "K3", 2014);
// 객체의 메소드 호출
car1.printDetails();
car2.printDetails();
return 0;
}
두 언어의 차이점
차이점을 표로 만들어 보았습니다.
항목 | C | C++ |
방식 | 절차지향 | 객체지향 |
표준 입출력 라이브러리 | stdio.h(scanf(), printf()) | iostream(cin, cout) |
동적 메모리 할당, 해제 | malloc(), free() | new, delete 키워드 |
함수 오버로딩 지원 | X | O |
네임 스페이스 지원 | X | O |
템플릿 지원 | X | O |
클래스 지원 | X | O |
** 이 글이 좋았다면 좋아요와 구독을 눌러주세요. **
'프로그래밍 > 겁나 쉽게 쓴 C, C++ 설명서' 카테고리의 다른 글
변수란? (0) | 2024.04.29 |
---|---|
C 프로그래밍의 시작 (0) | 2024.04.29 |
주석이란? (0) | 2024.04.29 |
C++ 클래스 (0) | 2024.04.12 |
[기술] C와 C++ 역사, 특징, 장단점, 차이점 (0) | 2024.03.02 |