C++

[C++] 인스턴스화 (instantiate) 란?

todoni 2022. 7. 16. 17:07

프로그래밍에서의 인스턴스화

실제 인스턴스나 추상화의 특정 구현 또는 템플릿을 생성 하는 것을 말한다. 인스턴스화란 예를 들어 클래스 내의 특정 객체의 변형을 정의하고 거기에 이름을 짓고 실제 물리 메모리 등에 위치 하게 하는 것.

.. 이라는데 즉

class Foo{

//describe

}

int main(){

Foo bar;

}

라고 하면

Foo 클래스 선언을 참조하면서 객체에 bar 라는 이름이 붙여지고 메모리나 디스크에 이를 위한 자원이 할당 되게 되는 것. 그리고 Foo bar; 라는 코드가 한줄 있는 것이다. 

C++ 에서의 인스턴스화

인스턴스화 라는 용어 자체를 설명하려면 범위가 넓고 설명이 모호해질 수 밖에 없다.

구체적으로 C++ 에서는 어떤 클래스의 새로운 인스턴스를 생성 하는 것을 인스턴스화 라고 한다. 해당 인스턴스를 위한 메모리가 할당되고 클래스 생성자가 실행된다. 우리는 new 키워드로 객체를 힙 영역에 인스턴스화 하거나 스택에 변수를 선언함으로 인스턴스화 할 수 있다. 앞에서의 예시는 변수 선언으로 인스턴스화를 한 것이다. 어떤 클래스의 객체가 인스턴스화 될 때마다 컴파일러는 해당 클래스 멤버들을 호출한다.