본문 바로가기

Archived(CSE Programming)/cpp

Chap 2. C언어 기반의 C++ 2

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