Programming/C++ 스터디

객체지향 프로그래밍 : 생성자

Greeneffect 2021. 9. 1. 00:43

클래스가 정의되어 있고 객체를 생성하게 되면 초기화 과정이 필요하게 된다. 특히 클래스 내부에 있는 멤버함수의 경우 메모리는 할당되지만 JAVA와 같이 초기화 과정이 없기 때문에 멤버함수의 접근이 요구되는 프로세스가 있다면 먼저 초기화를 수행해줘야 한다. 초기화를 할때 아래 그림과 같이 대입하는 방법과 초기화 리스트라는 방법이 있다.

 

- 대입하는 방법

class Vector
{
public:	
    Vector()
    {   	
        mX = 0;
        mY = 0;
    }
private:	
    int mX;
    int mY;
}


- 초기화 리스트

class Vector
{
public:	
    Vector()
        :mX(0)
        ,mY(0)
    {   	
    }
private:	
    int mX;
    int mY;
}
  • 멤버 변수를 대입없이 초기화
  • 상수나 참조변수도 초기화 가능

 

기본생성자

  • 기본생성자는 매개변수를 받지 않음
  • 클래스에 생성자가 없으면 copiler가 기본생성자를 자동으로 만듦
  • 위와 같이 자동으로 만들어진 생성자는
    • 맴버 변수는 초기화하지 않음
    • 모든 포함된 객체의 생성자를 호출

 

ex1) vector class에 생성자가 없는 경우

ex2) vector class에 매개변수를 받는 생성자가 있는 경우

 

 

 

'Programming > C++ 스터디' 카테고리의 다른 글

포인터  (0) 2022.06.16
객체지향 프로그래밍 : 상속  (0) 2021.09.08
객체지향 프로그래밍 : 클래스와 객체  (0) 2021.08.30