[C++] 클래스 멤버 / 생성자 / 소멸자

2023. 1. 27. 02:18·C++/C++

◆클래스 인스턴스간 차이(포인터 변수=인스턴스)

▷new 키워드를 이용해 클래스를 만들게 되면 클래스의 실제 값이 Heap영역에 저장되는 것이 가장 큰 차이이다. Heap 영역에 저장되는 클래스의 인스턴스 값은 함수의 실행주기(라이프사이클)에 관계없이 유지된다.

 

◆delete

▷따라서 new 키워드를 통해 클래스 인스턴스 실제 값을 Heap 메모리에서 삭제해줘야 한다.

▷malloc과 free의 관계이며, new를 쓰고 free로 해제할순 없다.

 

◆this

▷클래스 맴버 한수는 this라는 키워드를 통해 자기자신의 인스턴스(포인터 타입)을 가져올 수 있다.

▷클래스 맴버 함수를 호출하기 위해서는 호출한 주체인 어떤 클래스 인스턴스가 존재하게 되는데 그 호출 주체를 this 라고 한다.

 

◆소멸자(Destructor)

▷클래스는 소멸자를 통해 메모리에서 해제될 때의 행동을 지정해줄 수 있다. 이를 소멸자라고 한다.

▷소멸자는 ~클래스명() 으로 선언할 수 있으며, 소멸자도 리턴타입이 존재하지 않는다.

 

◆소멸자 호출의 필요성

▷모든 동적 메모리를 수동으로 관리해줘야 하는 C++의 특성상 클래스 멤버 변수에 동적 메모리 할당된 개체가 있다고 할 경우 소멸자에서 처리하지 않으면 하나하나 클래스 외부에서 delete 전에 메모리를 해제 해야한다. 

 

◆동적인 char 변수 생성

▷char* 변수 로 생성후 변수 = new char[strlen(사용할 단어+1)];

▷이후 strcpy(변수, 사용할 단어);

▷이때 할당한 것을 소멸자에 delete[] 변수 를 작성해 소멸시 자동으로 해제

--연습프로그래밍18분--

 

 

 

'C++ > C++' 카테고리의 다른 글

[C++] 여러개의 헤더와 소스  (0) 2023.02.13
[C++] 열거형  (0) 2023.02.08
[C++] 가상함수  (0) 2023.02.07
[C++] 오버라이드와 오버로드  (0) 2023.02.07
[C++] 클래스 상속 / 접근지정자  (0) 2023.02.03
'C++/C++' 카테고리의 다른 글
  • [C++] 열거형
  • [C++] 가상함수
  • [C++] 오버라이드와 오버로드
  • [C++] 클래스 상속 / 접근지정자
메카인
메카인
  • 메카인
    메카인의 지식창고
    메카인
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 코딩 공부
        • TIL(Today I Learn)
        • TIL
        • 백준(C++)
        • Python
        • 알고리즘
        • 프로젝트 회고
      • C++
        • C++
        • C++ STL
        • C,C++ mCoding yotube
      • 게임개발
        • 언데드서바이벌_골드메탈_클론코딩
        • 3D_골드메탈_클론코딩
        • 유니티_문제해결
        • 게임 수학
      • Unreal 공부
        • UE5 GameDev
        • Unreal Engine 4 C++ The Ult..
      • 교재 문제 풀이
        • 운영체제
      • 정보처리기사
        • 정처기 요약
        • 정처기 오답노트
      • 학교수업
        • 데이터베이스
        • 프로그래밍 언어론
        • 리눅스 시스템
        • 네트워크
      • 일상
        • 주식
        • 독서
      • (비공개 전용)
        • memory
        • Build
        • OOP
        • Smart Pointer
        • lamda
        • 게임 수학
        • 모던 C++
        • 모던 C++ STL
        • 모던 C++ Concurrency, Paralle..
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
    • 블로그 관리
  • 링크

  • 공지사항

    • 공지사항 - 인생과 블로그의 목표
  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
메카인
[C++] 클래스 멤버 / 생성자 / 소멸자
상단으로

티스토리툴바