2023. 11. 4. 20:54ㆍ개발하는중/cpp
객체? 소프트웨어 시스템 안의 어떠한 대상을 표현 한 것
클래스? 객체의 설계도
객체가 포함할 데이터 멤버의 선언과 멤버함수의 정의를 포함
클래서 선언
형식
class classname{
}
캡슐화(encapsulateion)
객체 내부의 상세한 구현 부분과 외부 사용자의 관점을 분리함
객체 정의
형식
classname objname;
classname objname1, objname2;
객체 사용 형식
객체 이름에 멤버선택 연산자 '.' 를 사용하여 객체의 멤버에 접근함
생성자(constructro)?
객체가 생성될 때 수행할 잡업을 정의하는 특수한 멤버함수
생성자에 인수를 전달할 수 있도록 매개변수를 선언할 수 있음
생성자를 여러 개 다중 정의 할수 있음
특성
클래스의 이름을 사용하여 선언
생성자 머리에 반환 자료형을 표기하지 않으며, return 명령으로 값을 반환 할수 없음
생성자를 public으로 선언해야 클래스 외부에서 객체를 생성할 수 있음
class A{
public :
A( parameters ){// 생성자
}
}
초기화 리스트?
생성자 머리에 데이터 멤버를 초기화하는 값들을 나열한 리스트
소멸자(destructor)?
객체가 소멸될 때 수행할 잡업을 정희하는 특수한 멤버함수
특성
클래스 이름에 ~를 붙여 선언
소멸자 머리에 반환 자료형을 표기하지 않으며, return 명령 으로 값 반환 불가
매개변수가 없으며, 클래스 하나의 소멸자만 정의할 수 있음
public으로 선언하는 것이 일반적
상속을 통해 파생 클래스를 정의하는 경우 virtural을 지정하여 가상함수가 되도록 하는 것이 좋음
class A{
public :
A(parameters){// 생성자
}
~A(){ // 소멸자 // 매개변수 사용 불가능
}
};
- 클래스는 프로그램이 표현하고자 하는 대상(객체)이 어떠한 속성(데이터 멤버)을 저장하고 있어야 하고, 어떤 행위(멤버함수)을 할 수 있는가를 선언한 것이다.
- 클래스에 해당되는 실제 사례(instance)를 객체(object)라고 한다. 객체는 고유한 속성값(데이터 멤버의 값)을 가지며, 이를 바탕으로 클래스에 정의된 행위를 할 수 있다.
- 가시성 지시어 private, public, protected는 클래스의 멤버가 공개되는 범위를 지정하기 위해 사용되는데, 정보은닉을 위해 private을, 외부에 제공할 인터페이스를 공개하기 위해 public을 사용한다.
- 클래스에서 데이터 멤버의 값을 변경하지 않는 멤버함수는 const 멤버함수로 정의한다.
- 생성자는 객체가 생성될 때 수행할 작업을 정의하는 특수한 멤버함수로서, 클래스 이름과 동일한 이름으로 선언하며, 일반적으로 객체를 초기화하는 작업을 수행한다.
- 소멸자는 객체가 소멸될 때 수행할 작업을 정의하는 특수한 멤버함수로, 클래스 이름과 동일한 이름에 앞에 ‘~’를 붙여 선언하며, 객체가 가지고 있는 자원을 반납하는 등의 처리를 담당한다.