생성자 : 생성자는 몇 개 또는 모든 멤버 변수의 값을 초기화하는 데 뿐만 아니라 그외 다른 종류의 초기화에도 사용된다.
클래스와 완전히 똑같은 이름을 갖는 클래스 멤버 함수이다.
생성자 선언에서 (void와 같은) 다른 형 이름으로 시작하지 않는다.
생성자 정의에서는 어떤 값도 리턴할 수 없다.
클래스의 객체가 선언될 때 자동 호출 된다.
일반적으로 클래스 정의에 public 영역 안에 있어야 한다.
※ 인자를 취하지 않는 생성자를 디폴트 생성자라고 부른다.
디폴트 생성자는 클래스형의 초기화되지 않은 객체를 제공하고 이 객체를 클래스형의 변수에 할당시킬 수 있다.
디폴트 생성자가 어떤 멤버변수도 초기화 하는 것을 원하지 않는 다면, 생성자를 구현할 때 본체를 단순히 비워두면 된다.
public:
{
…
sampleClass( );
}
…
sampleClass::sampleClass( ){ }
다음처럼 public 함수 선언부에서 디폴트 생성자를 지정해주지 않고
class sampleClass
{
public:
sampleClass(int param1, int param2)
}
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 |