접근 제어자, 힙 스택 개체 생성

markyang92·2023년 4월 1일
0
  • C++의 기본 접근 권한은 private
접근 제어자(Access Modifier)Description
public누구나 접근 가능
protected자식 클래스에서 접근 가능
밖에서는 모르고 상속 받은 자식 클래스에서만 접근 가능하다!
private해당 클래스에서만 접근 가능 (개체에서가 아님)
자식클래스에서도 모른다!

같은 클래스 단위면 알 수 있다.

개체 생성

스택에 생성

스택에 만들기

Vector a;
  • 정적 할당
  • 빠르다
    • 예약된 로컬 메모리 공간 (작음, 일반적으로 1MB이하)
      • 컴파일러 옵션으로 지정할 수 있음
    • 함수 호출과 반환이 이 메모리에서 일어남
    • 단순히 스택 포인터를 옮긴다.
      • 메모리를 할당 및 해제할 필요가 없다.
      • 스택에 할당된 메모리는 범위(scope)를 벗어나면 사라진다.
      • 변수와 매개변수를 위해 필요한 크기는 컴파일 도중에 알 수 있다.
  • 스택에 큰 개체를 많이 넣으면.. stack overflow가 발생할 수 있다.
    • 성능이 느려진다.

힙에 생성

힙에 만들기

Vector* a = new Vector();

delete a;
  • pointernew
  • 느리다
  • 전역 메모리 공간 (큼, ~GBs)
  • 동적 할당
  • 프로그래머가 반드시 메모리를 직접 해제 해야한다.

개체 배열

  • 10개의 Vector 개체를 힙에 생성
  • 10개의 포인터를 힙에 생성
profile
pllpokko@alumni.kaist.ac.kr

0개의 댓글