[C++ 기초 1편] 파일 구조 · 클래스 선언 · 자료형 · 제어문

김여울·2025년 5월 13일

사전캠프

목록 보기
20/24

전처리기와 입출력

#include <iostream> // 입출력 기능 포함

int main()
{
    std::cout << "Hello World\n"; // 문자열 출력 + 줄 바꿈
    return 0;
}
  • #include <> 기능 포함 (예: 표준 입출력 기능 추가)
  • #include <iostream> 표준 입출력 스트림 사용을 위한 헤더 파일
  • std::cout << "" 화면에 문자열 출력
  • \n 줄 바꿈 (newline), C 스타일 개행 문자
  • std::endl 줄 바꿈 + 출력 버퍼 비움 (flush)

📌 \n vs std::endl

구문기능
\n줄바꿈만 함 (버퍼는 안 비움)
std::endl줄바꿈 + 출력 버퍼 비움
버퍼를 강제로 비워서 바로 출력되게(flash)

파일 구조 (.h vs .cpp)

파일 종류설명
.h헤더파일 – 정의만 작성 (선언부)
.cpp소스파일 – 기능 구현 (구현부)

📄 헤더파일(.h) 시작 코드

#pragma once    // 이 파일을 중복 포함하지 않게 함

class Actor
{
public:
    Actor();
    void Hit();
};
  • #pragma once 같은 헤더파일이 여러 번 include 되어도 한 번만 포함되도록 함

✨ 소스파일(.cpp) 시작 코드

#include "Actor.h"   // 같은 프로젝트의 헤더파일 포함
#include <iostream>  // 표준 입출력 기능 포함

Actor::Actor()
{
    std::cout << "Actor 생성\n";
}
  • #include "..." 프로젝트 내부에 있는 사용자 정의 헤더파일을 포함할 때 사용
  • #include <...> C++에서 제공하는 표준 라이브러리를 포함할 때 사용

클래스 기초

📎강의 자료_클래스 요소
📎강의 자료_상속

#pragma once  // 중복 포함 방지

class Actor
{
public:
    Actor();              // 생성자
    void Hit();           // 함수 선언
protected:
    int Position;
private:
    bool isHidden;
};
구문설명
class클래스를 정의할 때 사용
public외부에서도 접근 가능 (공개 멤버)
protected상속받은 클래스에서만 접근 가능
private클래스 내부에서만 사용 가능 (기본 접근 제한자)
Actor()생성자 – 객체가 생성될 때 자동으로 호출됨
~Actor()소멸자 – 객체가 삭제될 때 자동으로 호출됨
void반환값 없이 기능만 수행하는 함수 선언
virtual상속 시 해당 함수를 재정의(override)할 수 있게 함
  • void
    • 리턴값(return 값)이 없음
    • 그냥 어떤 동작(출력, 상태 변경 등)만 수행하고 끝남
    • 단순 실행만 할 때
    • 로그 출력, 값 변경, 액션 실행 등
void TakeDamage(int32 Amount);  // 데미지를 입히지만 값을 리턴하진 않음

자료형

📎강의 자료

자료형설명예시
int정수형-10, 12345
float단정도 실수형3.14f, -0.001f
double배정도 실수형3.141592, 1e-10
bool논리형true, false
char문자형 (1글자)'A', '9'
std::string문자열"Hello", "C++"

포인터

📎강의 자료

(*hit).Damaged(AD);
개념표현식설명
포인터가 가리키는 객체(*hit)포인터 hit가 가리키는 객체 자체
멤버 접근 (기본형)(*hit).멤버포인터가 가리키는 객체의 멤버 변수 또는 함수 접근
멤버 접근 (예시)(*hit).Damaged(AD)hit가 가리키는 객체의 Damaged() 함수 호출
멤버 접근 (간단형)hit->멤버(*hit).멤버의 축약 문법
멤버 접근 (간단형 예시)hit->Damaged(AD)(*hit).Damaged(AD)와 동일한 표현, 일반적으로 더 많이 사용됨

제어문

📎강의 자료

if (조건1)
{
    // 조건1이 참일 때 실행
}
else if (조건2)
{
    // 조건1이 거짓이고, 조건2가 참일 때 실행
}
else
{
    // 모든 조건이 거짓일 때 실행
}

🧩 예시

if (score > 90)
{
    std::cout << "A 학점\n";
}
else if (score > 80)
{
    std::cout << "B 학점\n";
}
else
{
    std::cout << "C 이하\n";
}
  • if 조건이 **참(true)**일 때 해당 블록을 실행
  • else if 위의 조건이 **거짓(false)**이고, 새로운 조건이 **참**일 때 실행
    여러 개 사용 가능
  • else 위의 모든 조건이 **거짓**일 때 실행

0개의 댓글