14주차 요약

김서영·2021년 12월 6일
0

C++요약

목록 보기
1/1

템플릿: 포괄적 함수(generic function)

포괄적 함수(generic function)다.
인자(매개변수)를 통한 다형성을 제공한다.
함수의 매개변수의 형과 수로 구분이 되고, 코드 자체도 다르게 구성될 수 있다.
코드는 전혀 바뀌지 않고 형만 다른 함수를 필요할 때 사용한다.

매개변수를 전달하는 방법

C 언어에서는 기본적으로 실매개 변수의 값을 형식 매개변수로 전달한다.

call by value

형식 매개변수가 변할 때 실매개변수도 변하게 하려면 포인터를 이용하여 실매개 변수의 주소를 형식 매개변수로 전달하는 call by reference로 구현해야 한다.

포인터와 주소

메모리의 주소를 저장하려면 일반변수가 아닌 포인터를 사용해야 한다.
포인터는 주소를 저장하는 변수이므로 포인터 변수라고도 할 수 있다.
변수 앞에 &연산자를 사용하면 변수의 메모리 번지를 알 수 있다.
ex.변수가 sum이면 &sum
포인터도 변수이므로 사용하기 전에 선언해야 한다.
자료형과 변수명 사이에 구두점 *를 더 쓰면 된다.

이때 *는 곱하기 연산자가 아니다.

C 언어에서 *(구두점 vs. 연산자)

선언문에서 는 구두점이며, 포인터를 선언할 때 사용한다.
실행문에서
는 참조 연산자이며, 주소로 가서 값을 가져올 때 사용한다.
참조 연산자일 때 *는 간접 값(indirect value) 연산자, dereferencing 연산자라고도 한다.

참조자(reference)

C++에서만 가능하다.
int & rx = x;
참조자(rx)에 변화를 주면 그 타켓(x)도 변한다.

STL(Standard Template Library)

C++ 표준라이브러리의 일부분이다.
자주 사용되는 50여 개의 알고리즘과 다양한 자료구조들을 가지고 있다.


STL의 주요 구성 요소

컨테이너(container)

객체들을 저장하는 객체나 클래스

시퀀스 컨테이너(sequence container)

vector, deque, list

연관 컨테이너(associative container)

set, multiset, map, multimap

연속 메모리 기반 (contiquous-memory) 컨테이너

배열 기반 컨테이너(array-based container) 라고도 하며, 데이터 여러 개가 하나의 메모리 단위에 저장한다.
vector, string, deque

노드 기반(node-based) 컨테이너

데이터 하나를 하나의 메모리 단위에 저장한다.
list, set, multiset, map, multimap

반복자(iterator)

컨테이너에 저장된 요소를 순회하고 접근하는 객체나 클래스이다.

알고리즘(algorithm)

데이터를 다루기 위한 함수다.
find, sort, search 등

함수 객체(function object), 함수자(functor)

함수처럼 동작하는 객체
operator() 연산자를 중첩한 클래스의 객체


friend함수와 friend클래스

해당 클래스의 멤버 함수는 아니지만 클래스의 멤버를 자유롭게 사용할 수 있게 하는 함수이다.

class 클래스명{
friend 리턴형 함수명(매개변수 리스트);
friend 리턴형 클래스명::함수명(매개변수리스트);
};

예외처리(exception handling, error handling)

에러(error)는 컴파일 에러 / 실행 타임 에러(Run time error)가 있다.
오류 발생을 알리고 종료해 오류를 처리하는 방법이 있지만, 컴퓨터를 종료할 수 없는 경우가 있다.
try로 예외를 감시하고자 하는 문장을 묶고, throw로 예외 발생을 알리고 던지며, catch로 예외를 처리한다.


C++프로그래밍(21-2학기)한성현교수 강의 내용 변형 및 요약

0개의 댓글