새소식

🏫 School/[23-2] 객체지향프로그래밍

[C++] Generic Programming

  • -

Generic Function

[template Statement]

함수 또는 class를 개별적으로 모두 다시 작성하지 않더라도, 여러 자료형으로 이용할 수 있도록 만들어 놓은 것을 의미
Function Template : 함수의 기능은 명확하게 작성하지만, 그 자료형은 모호한 채로 두는 것을 의미
=> template를 사용하면 인자의 자료형에 따라 다르게 여러 함수를 작성하지 않아도 됨
=> 서로 다른 인자들을 control 할 수 있게 

[template Statement (using class term)]

- class 내부의 멤버 변수의 자료형에 대해 template 선언도 가능
- 멤버 함수를 class 밖에서 선언 시에 template 선언을 다시 해야 함
- 객체를 생성할 때 그 자료형을 정해

[Class definition using Template Statement]

- class templates을 사용하면 개체 클래스의 패턴 또는 구조를 유형 독립적인 방법으로 지정할 수 있음
- 두 개의 개별 class를 제공하는 대신 하나의 클래스 템플릿을 작성하여 컴파일러가 특정 프로그램이 요구하는 대로 좌표를 인스턴스화할 수 있

[Definition of STL]

STL : 표준 C++ 라이브러리 (Standard Template Library)를 의미
=> 프로그램에 필요한 자료구조와 알고리즘을 template로 제공하는 Library

[Standard Containers]

Container : 객체를 저장하고 있는 객체라고 표현 가능 (자료구조라고도 함)
=> class template으로 구현되어 있음
- Sequence Container : array, vector, list, deque

Iterators

포인터와 비슷한 개념으로 컨테이너의 원소를 가리키고, 가리키는 원소에 접근하여 다음 원소를 가리킴

Lambda Function

아래 사진은 Lambda Function의 꼴이다.

- Capture list : 외부 변수를 작성해 넣는다면 람다 함수 내부에서 사용할 수 있도록 capture 되는 것을 의미
- Parameter list : 실행시 받을 인자들을 의미 / 실제 함수에서 사용하는 인자 list와 동일하게 작성하면 됨
- Return type : 반한 타입
- Statements : 람다 함수를 진행할 때 실행할 내용

'🏫 School > [23-2] 객체지향프로그래밍' 카테고리의 다른 글

[C++] Exception Handling  (2) 2023.12.03
[C++] Inheritance (상속)  (0) 2023.11.16
[C++] Software Component (2)  (0) 2023.11.16
[C++] Software Component (1)  (0) 2023.11.16
[C++] Lab #01&02  (0) 2023.10.20
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.