C++ 기초 정리

윤준혁·2025년 2월 19일

C++의 역사

  • 1979년 벨 연구소의 비야네 스트롭스트룹에 의해 개발되었다.
  • C 언어의 성능과 유연성을 유지하면서 객체 지향 프로그래밍의 개념을추가하여 더 효율적인 소프트웨어 개발이 가능하도록 만들었다.
  • 1983년에 C++라는 이름이 붙었으며, 이후 여러 표준 개정 과정을 거치며 발전했다.

주요 발전 과정

1979년: 비야네 스트롭스트룹이 C with Classes 개발 시작
1983년: C++라는 이름이 붙음
1998년: 최초의 공식 표준 C++98 발표
2011년: C++11 발표 (자동 형 변환, 스마트 포인터, 람다 함수 도입)
2014년: C++14 발표 (C++11의 개선판)
2017년: C++17 발표 (파일 시스템 라이브러리 추가 등)
2020년: C++20 발표 (코루틴, 모듈 지원 추가)

C++이란?

  • 범용 프로그래밍 언어로 C언어의 확장판이며 객체 지향 프로그래밍, 제네릭 프로그래밍, 함수형 프로그래밍 등의 다양한 패러다임을 지원한다.
  • 속도가 빠르고, 강력한 제어 기능을 제공하여 운영체제, 게임, 임베디드 시스템 등 다양한 분야에서 사용된다.

특징

고성능 : 저수준 메모리 제어가 가능하여 시스템 프로그래밍에 적합
객체 지향 프로그래밍 : 캡슐화, 상속, 다형성을 활용한 구조적 개발 가능
제네릭 프로그래밍 지원 : 템플릿을 통해 코드의 재사용성과 확장성 증가
다양한 라이브러리 제공 : Standard Template Library(STL) 활용 가능

C++ 개발 환경

컴파일러

  • GCC : 리눅스 및 macOS에서 기본 제고오디며 Windows에서도 사용 가능
  • Clang : 빠르고 모던한 컴파일러로, macOS에서 기본 제공됨
  • MSVC : Windows 환경에서 Visual Studio와 함께 사용됨

통합 개발 환경(IDE)

  • Visual Studio : 강력한 디버깅 및 빌드 기능 제공
  • Code::Blocks : 가볍고 사용하기 쉬운 오픈소스 IDE
  • CLion : JetBrains에서 개발한 C++ 전용 IDE
  • VS Code - 확장 기능을 통해 C++ 개발 가능

기본 개념

변수와 자료형

  • int : 정수 (4byte)
  • float : 실수 (4byte)
  • double : 정밀한 실수 (8byte)
  • char : 문자 (1byte)
  • bool : 참 또는 거짓 (1byte)
  • string : 문자열 (C++11 이상)

변수 선언 예제

int age = 25;
float height = 175.5;
char grade = 'A';
bool isStudent = true;
std::string name = "Alice";

연산자

산술 연산자

  • + : 덧셈
  • - : 뺄셈
  • * : 곱셈
  • / : 나눗셈
  • % : 나머지

비교 연산자

  • == : 같음
  • != : 다름
  • > : 초과
  • < : 미만
  • >= : 이상
  • <= : 이하

제어문

if문

괄호 안의 연산자가 참의 값일 경우 실행, 거짓일 경우 else 실행(else는 필수는 아님)

int num = 10;
if (num > 0) {
    std::cout << "양수입니다.";
} else {
    std::cout << "음수 또는 0입니다.";
}

switch

grade에 해당하는 case를 실행(case마다 break를 선언하지 않으면 해당하는 케이스부터 아래의 케이스를 모두 실행)

int grade = 2;
switch (grade) {
    case 1:
        std::cout << "좋음";
        break;
    case 2:
        std::cout << "보통";
        break;
    default:
        std::cout << "나쁨";
}

반복문(for, while)

설정한 조건이 참일 때까지 반복문안의 코드를 실행

// for문
for (int i = 0; i < 5; i++) {
    std::cout << i << " ";
}

// while문
int i = 0;
while (i < 5) {
    std::cout << i << " ";
    i++;
}

배열

  • 같은 자료형의 여러 변수를 하나의 이름으로 묶어 관리하는 자료구조

배열의 기본 구조

자료형 배열이름[크기];

예제

int numbers[5]; // 크기가 5인 정수형 배열
int numbers[5] = {1, 2, 3, 4, 5}; // 선언과 동시에 초기화
int numbers[] = {1, 2, 3, 4, 5}; // 크기 생략(자동으로 초기화에 맞춰 크기 설정)

0개의 댓글