디필의 요모조모
명품 C++ Programming 4장 요약 본문
<4장 객체 포인터와 객체 배열, 객체의 동적 생성>
객체 포인터
- C++에서는 객체의 주소를 가지는 객체 포인터를 선언하고 활용할 수 있다.
- 객체 포인터로 객체의 멤버에 접근할 때 -> 연산자를 사용한다.
- 초기화되지 않는 객체 포인터를 사용하면 null pointer assignment 실행 오류가 발생한다.
객체 배열
- 객체 배열의 선언 및 활용 방법은 기본 타입 배열과 동일하다.
- 객체 배열이 생성될 때 배열의 각 원소 객체마다 기본 생성자가 실행되며, 배열이 소멸될 때 각 원소 객체마다 소멸자가 실행된다. 원소 객체는 인덱스가 높은 곳에서 낮은 순으로 소멸된다.
- 객체 배열은 다음과 같이 생성자를 이용하여 초기화할 수 있다.
Circle circleArray[3] = { Circle(10), Circle(20), Circle() };
동적 메모리 할당 및 반환
- new 연산자로 동적 메모리를 할당받고, delete 연산자로 할당받은 메모리를 반환한다.
- new로 기본 타입의 배열을 할당받고, delete로 소멸할 수 있다.
객체와 객체 배열의 동적 생성 및 반환
- new와 delete를 이용하여 객체를 할당 받고 반환할 때, 생성자와 소멸자가 각각 실행된다.
- new와 delete를 이용하여 객체 배열을 할당 받고 반환할 수 있으며, 이때 배열의 각 객체마다 생성자와 소멸자가 실행되고, 소멸자는 생성된 반대순으로 실행된다.
- new로 객체 배열을 생성할 때는 기본 생성자가 호출된다.
- new로 할당받은 메모리는 실행 중에 delete를 이용하여 반환하지 않는 한 시스템에 반환되지 않는다. 동적으로 할당받은 메모리에 대한 주소를 잃어버리게 되면 메모리 누수가 발생한다. 프로그램이 종료하면 동적으로 할당받은 메모리는 자동 반환된다.
this 포인터
- this는 객체 자신에 대한 포인터이다.
- 객체의 멤버 함수가 호출될 때 컴파일러는 객체의 주소를 멤버 함수에 묵시적으로 전달하며, this는 이 주소를 받도록 컴파일러에 의해 몰래 삽입된 매개 변수의 이름이다.
- 클래스의 non-static 멤버 함수에서만 사용할 수 있다.
string 클래스를 이용한 문자열 사용
- string 클래스는 C++ 표준 라이브러리에 포함된 것으로 문자열을 다루는 클래스이다.
- <string> 헤더 파일에 선언되어 있다.
- string 클래스는 문자열의 길이에 따라 문자열을 저장하는 내부 메모리의 크기를 자동으로 조절하므로 사용하기 편리하고, 문자열 조작을 위한 많은 멤버 함수와 연산자 함수를 제공한다.
- 문자열을 키보드로부터 입력 받기 위해 <string> 헤더 파일에 선언된 getline() 전역 함수를 이용하면, 공백 문자를 포함하는 문자열을 입력받을 수 있다.
- stoi() 함수를 이용하면 문자열을 숫자로 변환할 수 있다.
'Programming Language > C++' 카테고리의 다른 글
명품 C++ Programming 5장 요약 (0) | 2020.10.13 |
---|---|
명품 C++ Programming 3장 요약 (0) | 2020.10.13 |
명품 C++ Programming 2장 요약 (0) | 2020.10.13 |
명품 C++ Programming 1장 요약 (3) | 2020.10.13 |
아두이노(Ardoino) 7-Segment 코드 및 연결 방법 (0) | 2019.12.09 |
Comments