객체 배열
Car carArray[3] = {
Car(10, "white"),
Car(20, "red"),
Car(0, "blue"),
};
- 객체 배열을 초기화하지 않으면 기본 생성자 호출
- 객체 별로 생성자 호출 가능
객체
- 정적 생성
Car myCar;
- 동적 생성
Car *pCar = new Car();
- 객체 포인터를 통한 멤버 접근
pCar->speed = 100;
pCar->display();
- this 포인터
- 현재 코드를 실행하는 객체를 가리키는 포인터
- 인스턴스 존재해야 사용 가능
- this는 도면에 있는 Class의 포인터
- this는 인스턴스의 주소
- 객체에서 = 은 할당 연산
함수에서 객체의 전달
- 객체가 함수의 매개 변수로 전달
- 복사
- 객체의 포인터가 함수의 매개 변수로 전달
- 객체의 레퍼런스가 함수의 매개 변수로 전달
- 함수의 실인자의 값이 변경됨
- 인자를 복사하지 않기 위한 용도
- 함수가 객체를 반환
정적 멤버
- 전역이면서 객체에 속함
- 도면(class)에 속함
- 정적 변수: 모든 객체를 통틀어서 하나만 있는 변수
- 정적 멤버 변수
- 초기화 리스트로 초기화 불가능
- 초기화는 class 밖에서 해줘야 함, 초기화하지 않으면 0
- const는 integral 타입에 대해서만 선언하면서 초기화
static int static_v; // 밖에서 초기화 const static int const_static_int = 1; // integral type const static char *const_static_ptr; // 밖에서 초기화
- 정적 멤버 함수
- 인스턴스 없이 동작
- speed와 같은 멤버 변수나 this 접근 불가능
- 전역변수와 정적 멤버 변수만 접근 가능
const 멤버 변수
📍 초기화 방법
- 선언문에서 가능 (C++11부터 가능)
- 초기화 리스트에서 가능
const 멤버 함수
- 상수 객체는 const 키워드가 붙은 함수만 사용 가능
- 변할 수 있는 객체도 const 함수 사용 가능
- const 멤버 함수 내부에서 멤버 변수의 값 변경 불가능
- const 수식어도 function signature에 포함되어 중복 가능
- 변할 수 있는 객체도 const 함수 사용이 가능하나 우선순위는 변할 수 있는 함수부터 찾음
- void display() const {} void display() {}
728x90
반응형
'C++' 카테고리의 다른 글
[C++] Operators (0) | 2024.04.30 |
---|---|
[C++] Namespace (0) | 2024.04.30 |
[C++] Constructors and Destructors (0) | 2024.04.30 |
[C++] Class (0) | 2024.04.30 |
[C++] Dynamic Allocation (0) | 2024.04.30 |