반응형
📌 요약: 클래스 선언 | 생성자 | 소멸자 | 구조체와 클래스 차이 | 멤버 변수/함수 | 접근제한자
🏗️ 클래스 (Class)
클래스는 객체지향 프로그래밍에서 객체를 만들기 위한 설계도입니다.
클래스로부터 만들어진 실제 데이터를 인스턴스(instance)라고 합니다.
✅ 클래스 선언
class 클래스이름 {
// 멤버 변수
// 멤버 함수
};
🧠 클래스 예제
class Student1 {
public:
string name;
int math;
int english;
int science;
float Average() {
return (math + english + science) / 3.0f;
}
};
Average()는 세 과목 평균을 반환하는 멤버 함수입니다.
🆚 구조체와 클래스의 차이
C++에서 struct와 class는 거의 동일하지만, 기본 접근 제한자만 다릅니다.
| 항목 | 구조체 (struct) | 클래스 (class) |
|---|---|---|
| 기본 접근제한자 | public | private |
| 멤버 함수 포함 가능 | 가능 | 가능 |
| 생성자/소멸자 정의 | 가능 | 가능 |
struct Student2 {
string name;
int math;
int english;
int science;
float Average() {
return (math + english + science) / 3.0f;
}
};
⚙️ 생성자 (Constructor)
생성자는 객체가 생성될 때 자동으로 호출되는 함수이며, 초기화 작업을 수행합니다.
오버로딩을 통해 다양한 초기화 방식도 지원합니다.
class Constructor {
int value1;
int value2;
int value3;
public:
Constructor() {
this->value1 = 0;
this->value2 = 0;
this->value3 = 0;
}
Constructor(int value1) {
this->value1 = value1;
this->value2 = 0;
this->value3 = 0;
}
Constructor(int value1, int value2, int value3) {
this->value1 = value1;
this->value2 = value2;
this->value3 = value3;
}
};
this는 자기 자신을 가리키는 포인터로, 매개변수와 멤버변수 이름이 같을 때 구분에 사용됩니다.
🧹 소멸자 (Destructor)
소멸자는 객체가 소멸될 때 자동으로 호출되며, 동적 메모리 해제 같은 정리 작업을 수행합니다.
virtual 키워드를 사용하면 상속 시에도 안전하게 소멸됩니다.
class Destructor {
int* ptr;
public:
Destructor() {
ptr = new int;
}
virtual ~Destructor() {
delete ptr;
}
};
🧪 사용 예시 (main)
int main() {
Constructor c1(1);
Constructor c2(2, 3, 4);
return 0;
}
반응형
'C++ > 기본' 카테고리의 다른 글
| [C++] 15. 클래스(3) (0) | 2025.03.29 |
|---|---|
| [C++] 14. 클래스(2) (0) | 2025.03.29 |
| [C++] 12. 구조체(3) (0) | 2025.03.29 |
| [C++] 11. 구조체(2) (0) | 2025.03.29 |
| [C++] 10. 구조체(1) (0) | 2025.03.29 |