Menu
CoddyTech

C++ OOP 입문

Coddy C++ 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨. 104개 중 5번째.

객체 지향 프로그래밍은 데이터와 동작을 함께 묶는 클래스로 코드를 구성합니다.

공개 멤버가 있는 간단한 클래스

class Dog {
public:
    std::string name;
    int age;
    
    std::string bark() {
        return name + " says Woof!";
    }
};

객체 생성 및 사용

Dog dog;
dog.name = "Buddy";
dog.age = 3;

std::cout << dog.bark() << std::endl;

출력:

Buddy says Woof!

클래스는 구조를 정의합니다. 클래스가 어떤 데이터를 보유하고 어떤 동작을 수행할 수 있는지를 말합니다. 객체는 여러분이 만들고 사용하는 특정 인스턴스입니다. public: 아래에 있는 멤버는 어디서나 접근할 수 있습니다.

프로젝트에서는 보통 클래스가 메서드만 선언하는 헤더 파일(Dog.h)에 들어가고, 메서드 본문은 .cpp 파일에 들어갑니다. 이 파일에서는 각 메서드 이름 앞에 클래스 이름과 ::(범위 지정 연산자)를 씁니다.

// Dog.h
#include <string>

class Dog {
public:
    std::string name;
    std::string bark();   // 선언만 있음
};

// Dog.cpp
#include "Dog.h"

std::string Dog::bark() {
    return name + " says Woof!";
}
challenge icon

챌린지

쉬움

공개 멤버와 메서드를 갖는 Dog 클래스를 만드세요:

  • 공개 멤버: name (string) 및 age (int)
  • bark(): "<name> says Woof!"를 반환합니다
  • info(): "<name> is <age> years old"를 반환합니다

직접 해보기

#include <iostream>
#include "Dog.h"

int main() {
    std::string name;
    int age;
    std::getline(std::cin, name);
    std::cin >> age;
    
    Dog dog;
    dog.name = name;
    dog.age = age;
    
    std::cout << dog.bark() << std::endl;
    std::cout << dog.info() << std::endl;
    return 0;
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

객체 지향 프로그래밍의 모든 레슨

직접 연습해 보세요: 온라인 C++ 컴파일러