생성자 : 생성자는 몇 개 또는 모든 멤버 변수의 값을 초기화하는 데 뿐만 아니라 그외 다른 종류의 초기화에도 사용된다.

  • 클래스와 완전히 똑같은 이름을 갖는 클래스 멤버 함수이다.

  • 생성자 선언에서  (void와 같은) 다른 형 이름으로 시작하지 않는다.

  • 생성자 정의에서는 어떤 값도 리턴할 수 없다.

  • 클래스의 객체가 선언될 때 자동 호출 된다.

  • 일반적으로 클래스 정의에 public 영역 안에 있어야 한다.

※ 인자를 취하지 않는 생성자를 디폴트 생성자라고 부른다.
디폴트 생성자는 클래스형의 초기화되지 않은 객체를 제공하고 이 객체를 클래스형의 변수에 할당시킬 수 있다.

디폴트 생성자가 어떤 멤버변수도 초기화 하는 것을 원하지 않는 다면, 생성자를 구현할 때 본체를 단순히 비워두면 된다.
public:
{
sampleClass( );
}
sampleClass::sampleClass( ){ }


다음처럼 public 함수 선언부에서 디폴트 생성자를 지정해주지 않고

 class sampleClass
{
public:
sampleClass(int param1, int param2)
sampleClass( ); (이 구문을 빼놓고)
}

void main()
{

sampleClass myVariable;  // 인자가 없는 생성자를 호출할 수 없다.
···
}

(맞게 하려면)

 class sampleClass
{
public:
sampleClass(int param1, int param2)
sampleClass( );
}

void main()
{

sampleClass myVariable;  
···

sampleClass myVariable( ); //  이 구문은  sampleClass 객체를 리턴하는 매개변수가 없는 함수를 선언하는 꼴이 된다.(틀림)

myVariable=sampleClass( ); <- 이건 맞음 (명시적 표현)

}


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

[C#] 값 타입 vs 참조 타입  (0) 2018.06.05
클래스(정적멤버)  (0) 2018.06.05
클래스(캡슐화)  (0) 2018.06.04
클래스(정의와 멤버함수)  (0) 2018.06.04
컴파일언어와 인터프리터언어  (0) 2018.06.04

+ Recent posts