클래스 정의는 형식, 객체 생성은 저장 위치와 수명 책임을 정한다

Person을 정의할 때는 공개 약속과 구현 위치를 나누고, Person 객체를 만들 때는 스택인지 힙인지에 따라 소멸 책임이 달라집니다.

1 선언Person.h멤버 변수와 public 함수의 약속을 둡니다.
2 구현Person::setAge함수 본문은 소스 파일에서 정의합니다.
3 생성Person p1(...)정의된 타입으로 실제 객체 상태를 만듭니다.

stack object

Person p1("김영희", 25) 스코프가 끝나면 자동으로 소멸합니다. 기본 선택입니다.

heap object

Person* p3 = new Person(...) delete 책임이 코드에 남습니다. 소유권을 분명히 해야 합니다.

member/static

Person owner.member 소유 객체나 프로그램 수명에 맞춰 생성·소멸됩니다.
초기화생성자와 initializer list로 시작 상태를 정합니다.
접근객체는 점, 포인터는 화살표로 멤버에 접근합니다.
수명스택은 자동, 힙은 소유자가 해제 책임을 집니다.
복사자원을 갖는 객체는 복사/이동 규칙을 확인합니다.
객체 생성 코드를 읽을 때는 문법보다 “어디에 저장되고, 누가 언제 정리하는가”를 먼저 보면 선택 기준이 단순해집니다.