C++/summary

생성자 && 소멸자.

gandus 2010. 6. 1. 15:50

생성자 : 객체가 생성될 때에 필드에게 초기값을 제공하고 필요한 초기화 절차를 실행하는 멤버 함수

-> 객체 자체에는 접근을 할수가 없으므로, 초기에 비공개 멤버변수를 초기화.


객체의 생성- 생성자 - 객체의 사용 - 소멸자 -  객체의 파괴


기본형식은

class Car
{
public :
           Car()    // 반환값이 존재하지 않는다.
           {
                   초기화를 정의한다.
           }
           Car(){}  // 중복정의가 가능하다.
}

- > 생성자는 객체를 사용하면 자동으로 생성된다

Car :: Car() 외부 정의도 가능하지만, 간결해서 보통 안에 적는다.

Car(int s, int g, string c)  {    }    // 매개변수를 가지는 생성자
호출은  Car c1( 1, 2, "red" );
Car c2 = car(1, 2, "red")  - > 이것은 먼저 임시 객체를 만들고 이것을    c4에 복사




소멸자

-소멸자는 클래스 이름에 ~가 붙는다.
-값을 반환하지 않는다.
-public 멤버 함수로 선언된다.
-소멸자는 매개 변수를 받지 않는다.
-중복 정의도 불가능하다.

class Car
{
public :  ~Car() {  }
}

----------------------------

동적할당을 사용한 생성자가 있을때 소멸자를 사용하면 좋다.

class Car {
 int speed; // 속도
 int gear; // 기어
 char *color; //  포인터 형
public:
 // 첫 번째 생성자
 Car(int s, int g, char *c) {
  speed = s;
  gear = g;
  color = new char[strlen(c)+1];    // 동적할당.
  strcpy(color, c);
 }
 ~Car() {
  delete [] color;         // 동적 메모리를 반납.
 }
};

_____________________________________

이전 시간까지 배운 객체의 라이프 사이플
객체 생성(객체 초기화, 중복정의가 가능) - > 생성자 호출 -> 객체 사용 - > 소멸자(동적 메모리 반납) - > 객체 소멸