생성자(영어: constructor, 혹은 약자로 ctor)는 객체 지향 프로그래밍에서 객체의 초기화를 담당하는 서브루틴을 가리킨다. 생성자는 객체가 처음 생성될 때 호출되어 멤버 변수를 초기화하고, 필요에 따라 자원을 할당하기도 한다. 객체의 생성 시에 호출되기 때문에 생성자라는 이름이 붙었다.

생성자는 대체로 멤버 함수와 같은 모양을 하고 있지만, 값을 반환하지 않는다는 점에서 엄밀한 의미의 함수는 아니다.

문법 편집

  • C++, 자바, C#과 같은 언어에서 생성자는 클래스의 이름과 같은 이름을 갖는다. 또한 이들 언어에서는 함수 인자의 개수와 타입에 따라 여러개의 서로 다른 생성자를 정의할 수 있다.
  • 몇몇 언어에서는 생성자를 정의하는 특수한 키워드가 따로 정의되어 있다. 파이썬__init__이라는 함수 이름을 사용하고, 루비initialize라는 이름을 사용하며,[1] 오브젝티브-C는 메모리 할당과 변수 초기화 부분을 분리하여 각각 allocinit이라는 함수 이름을 사용한다.[2]

같이 보기 편집

각주 편집

  1. 데이브 토머스; 차드 파울러, 앤디 헌트 (2007년 2월 4일). 《프로그래밍 루비》. 강문식, 박지인, 양석호 옮김 2판. 인사이트. 33쪽. ISBN 9788991268258. 
  2. 스티븐 코찬 (2009년 9월 14일). 《프로그래밍 오브젝티브-C 2.0》. 박세현 옮김. 인사이트. 45-46쪽. ISBN 9788966260430.