Chap 2. C언어 기반의 C++ 2
2-1. 시작에 앞서
const 상수의 의미
const int * ptr1 = &value; // 포인터 ptr1을 이용해서 value 값을 변경할 수 없습니다.
int * const ptr1 = &value; // 포인터 ptr1 자체가 상수화 되었습니다.
2-2. 새로운 자료형 bool
기존의 true/false를 0이 아닌 것/ 0 으로 구분하던 것을 새롭게 표현한다.
bool 자료형으로 true와 false를 할당할 수 있다.
2-3. 참조자(reference)의 이해
참조자란 기존의 할당되어 있는 변수 공간을 가르킬 수 있는 새로운 형태를 말하는 것이다.
따라서 기존의 할당되어 있는 공간으로만 초기화 할 수 있으며, 초기화가 이루어진 후에는 변수처럼 사용이 가능하다.
& 연산자를 통해 표현되어 지며 다음과 같이 초기화 한다.
int & ref = var;
참조자의 수에는 제한이 없으며 참조자를 대상으로도 참조자를 초기화할 수 있다.
포인터 변수들도 참조자를 사용할 수 있다.
int * (&ref) = ptr;
2-4. 참조자(reference)와 함수
참조자는 함수와 함께 사용하여 call-by-reference를 구현할 수 있다.
기존의 call-by-reference의 경우 ptr를 통해 접근하는 방식이나 참조자를 사용해서도 call-by-reference를 사용할 수 있다.
void function (int & var1, int &var2); 와 같이 참조자를 매개변수로 선언하여 이 함수를 호출할때 참조자 변수를 초기화하여 활용할 수 있다.
int & function (int & var1, int &var2) 반환형으로도 참조자를 반환할 수 있다.
이 때 변수에 할당할 경우 다음과 같은 의미를 지닌다.
int & ref = 참조형 반환함수(); => 같은 변수를 가르키는 또 다른 참조형 ref 선언.
int & ref = int형 반환함수(); => error, 상수 값을 반환하는데 이를 ref로 참조할 수 없다.
int var = 참조형 반환함수(); => 값을 복사한 다른 변수를 선언.
int var = int형 반환함수(); => 값을 복사한 다른 변수를 선언.
2-5. malloc & free 를 대신하는 new & delete
기존의 동적 할당과 해제 시 활용하던 malloc과 free 함수를 대신하여 cpp에서는
new 와 delete 함수를 활용한다.
int * ptr = new int; // int형 공간 할당
int * arr = new int[4]; // int arr[4] 의 동적 할당
delete ptr; // ptr 해제
delete []arr; // 배열임을 명시하여 해제한다.
2-6. c++ 에서 c 언어의 표준함수 호출하기
cpp에서 c언어의 표준함수를 호출하고자 한다면 .h를 빼고 c를 더해서 include 하면 된다.
#include <cstdio>
'Archived(CSE Programming) > cpp' 카테고리의 다른 글
Chap 6. friend와 static 그리고 const (0) | 2019.01.07 |
---|---|
Chap 5. 복사 생성자(Copy Constructor) (0) | 2019.01.06 |
Chap 4. 클래스의 완성 (0) | 2019.01.05 |
Chap 3. 클래스의 기본 (0) | 2019.01.04 |
Chap 1. C언어 기반의 C++ (0) | 2019.01.04 |