학습 내용

C++에서 클래스객체 지향 프로그래밍의 핵심 요소로, 객체의 데이터와 동작을 캡슐화하여 코드의 재사용성과 유지보수성을 향상시킵니다. 클래스를 사용하면 다양한 객체를 모델링하고, 객체 지향 프로그래밍의 장점을 효과적으로 활용할 수 있습니다.

클래스의 기본 구조

C++에서 클래스는 다음과 같은 구조로 정의됩니다.

class 클래스이름 {
public:
    // 공개 멤버 변수 및 메소드
private:
    // 비공개 멤버 변수 및 메소드
};

멤버 변수와 메소드

class Person {
public:
    std::string name;  // 이름
    int age;           // 나이
};

class Person {
public:
    std::string name;
    int age;

    // 멤버 변수에 값을 설정하는 메소드
    void setDetails(std::string n, int a) {
        name = n;
        age = a;
    }

    // 멤버 변수를 출력하는 메소드
    void printDetails() {
        std::cout << "Name: " << name << ", Age: " << age << std::endl;
    }
};

클래스를 정의한 후 객체를 생성하고 멤버 변수와 메소드에 접근할 수 있습니다.

Person p;  // Person 객체 생성
p.setDetails("John", 25);
p.printDetails();  // 출력: Name: John, Age: 25

생성자와 소멸자

생성자(Constructor): 객체가 생성될 때 자동으로 호출되어 멤버 변수를 초기화합니다.

소멸자(Destructor): 객체가 소멸될 때 자동으로 호출되며, 사용한 자원을 정리합니다.

class Person {
public:
    std::string name;
    int age;

    // 생성자: 객체 생성 시 호출
    Person(std::string n, int a) {
        name = n;
        age = a;
    }

    // 소멸자: 객체 소멸 시 호출
    ~Person() {
        std::cout << "Person object destroyed!" << std::endl;
    }

    void printDetails() {
        std::cout << "Name: " << name << ", Age: " << age << std::endl;
    }
};

Person p("Alice", 30);  // 생성자 호출
p.printDetails();  // 출력: Name: Alice, Age: 30
// 모든 코드가 실행 된 이후, 프로그램 종료 시 소멸자가 자동 호출 - "Person object destroyed!"

정리