728x90
- 클래스 : 객체의 설계도와 같고, 클래스에는 객체가 포함할 속성에 대한 명세와 메소드들이 정의되어 있음
- 데이터 멤버 : 클래스 안에 정의한 속성
- 멤버 함수 : 메소드
- 가시성 지시어 : private(default, 정보은닉), protected, public
- 생성자와 소멸자
- 생성자 : 객체가 생성될 때 수행할 작업을 정의하는 특수한 멤버함수로서, 객체를 정의하는 문장에 의해 자동적으로 호출됨
- 클래스의 이름을 사용하여 선언
- 머리부에 반환 자료형을 표시하지 않음
- 몸체 내에서 return 명령으로 값을 반환할 수 없음
- 다중정의 할 수 있음
- 생성자 : 객체가 생성될 때 수행할 작업을 정의하는 특수한 멤버함수로서, 객체를 정의하는 문장에 의해 자동적으로 호출됨
class Counter {
int value;
public:
Counter() //생성자
.
.
};
- 초기화 리스트
- 생성자가 하는 주요 작업으로는 데이터 멤버에 적절한 초깃값을 넣는 것
- 함수의 머리에 콜론(:)을 기입하고 '변수명{초깃값}' 또는 '변수명(초깃값)'형태로 지정
Counter() : value{0} {} // 생성자 및 초기화
- 소멸자
- 객체가 소멸될 때 자동으로 실행되는 함수
- return 명령으로 값을 반환할 수 없으며, 함수 머리에 반환할 자료를 표시하지 않는다.
- 매개변수를 포함할 수 없다.
- 다중정의할 수 없으며, 클래스에 하나만 정의한다.
- 객체가 소멸될 때 자동으로 실행되는 함수
~ClassName() //소멸자
- 디폴트 생성자
- 매개변수가 없는 생성자 또는 매개변수가 있지만 모두 디폴트 값이 있는 디폴트 인수만 포함하고 있는 생성자
- 복사 생성자
- 같은 클래스의 객체를 복사하여 객체를 만드는 생성자
Copycat(const Copycat& cc) //복사 생성자 원형
- 이동 생성자
- r-value 참조를 사용
- *r-value : 함수의 실행 결과 반환되는 객체와 같이 곧 소멸될 예정인 임시 객체나 10, 'a', true 등과 같은 리터럴이 해당
ClassName(ClassName&& obj) // 이동생성자
- static 멤버함수
- 객체가 정의되지 않아도 사용할 수 있다.
- 일반 데이터 멤버는 액세스할 수 없다.(static멤버함수에서는 일반 멤버함수를 호출 할 수 없음)
- 객체 생성 여부와 관계없이 클래스에 대해 하나만 만들어진다.
728x90
'컴퓨터 과학 > [C++] 기초' 카테고리의 다른 글
[C++] 함수 (0) | 2022.12.12 |
---|---|
[C++] LNK2005 : main(이)가 소스.obj에 이미 정의되어 있습니다. (0) | 2022.09.26 |