Notice
Recent Posts
Recent Comments
코드 위의 하루 (A Day on the Code)
C++ 중간고사 총정리 - 객체지향의 시작, 클래스와 생성자 본문
📌 과목 개요
- 과목명: C++ 프로그래밍
- 교재: 『명품 C++ Programming』 - 황기태 저
- 중간고사 범위: Chapter 1 ~ Chapter 4
- 시험 스타일: 개념 설명 + 코드 해석 + 출력 결과 예측
📚 핵심 개념 정리
1. 클래스와 객체 (Chapter 3)
- 클래스: 객체를 만들기 위한 설계도
- 객체: 클래스를 기반으로 생성된 실체 (인스턴스)
- 접근 지정자: public, private, protected
class Car {
public:
int speed;
void run() {
cout << "달립니다." << endl;
}
};
2. 생성자와 소멸자
- 생성자(Constructor): 객체가 생성될 때 자동 호출됨. 반환형 없음.
- 소멸자(Destructor): 객체가 소멸될 때 호출됨. ~클래스이름() 형식
class Car {
public:
Car() { cout << "Car 생성됨"; }
~Car() { cout << "Car 소멸됨"; }
};
3. 인라인 함수
- 짧은 함수에 사용되며, 컴파일 시 함수 호출 대신 코드 자체를 삽입
- 성능을 높일 수 있음
inline int square(int x) { return x * x; }
4. 동적 메모리 할당 (new, delete)
- 동적으로 메모리를 확보하고 해제할 수 있음
- 사용 후 반드시 delete로 메모리 해제 필요
int* p = new int;
*p = 10;
delete p;
💡 자주 나오는 문제 유형
- cout 출력 결과 예측
- 생성자/소멸자 호출 순서 문제
- 포인터, new/delete 해석
- 접근 지정자 오류 유무 판단
🎯 교수님이 강조한 포인트
- 클래스 선언과 구현 구분
- 생성자 오버로딩 가능 / 소멸자는 불가능
- 포인터 관련 메모리 해석
📌 내 오답노트 & 복습 포인트
- delete 없이 종료 → 메모리 누수 발생!
- private 멤버를 객체 외부에서 접근하면 컴파일 에러
- 생성자에 void 붙이면 안 됨 (예: void Car() {} ❌)
📝 마무리 요약
- C++의 핵심은 객체지향: 클래스와 객체를 이해하는 것이 우선
- 문법보다는 “실제 호출 순서”와 “출력 결과”에 집중
- 무조건 코드를 써보면서 익히는 것이 중요!
📘 다음 편 예고
《전공이 밥 먹여준다믄 - C++ 중간고사 정리》
포인터와 배열의 지옥에서 살아남기
'🍚전공이 밥 먹여준다믄 > 📘 C++' 카테고리의 다른 글
제어문 & 입출력 총정리 (0) | 2025.05.12 |
---|---|
참조, 함수 인자 전달, 깊은 복사의 비밀 (0) | 2025.05.12 |
포인터와 배열의 지옥에서 살아남기 (0) | 2025.05.12 |