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!"