Template - 고정 형태 틀 형판 ( STL 의 Standard Template Library)
(일상에서 들어본 템플릿은 PPT 엑셀 등에서 기본적으로 제공되는 폼 에서 많이 보았다.)
(정해진 틀에서 내용만 바꿔서 사용할수 있는 폼들)
수업에서 자주 쓰던 셔플과 스왑처럼 중복되는 함수를 템플릿으로 만들수있다.
Utility - 유용성 다용도 다목적 공통의 (헤더파일의 이름은 알아보기 쉽게 정한다)
유틸리티라는 헤더파일을 만들어서 그내부에 공통된 함수들을 템플릿으로 만들어 넣는다.
template<typename T> - <type 자료형 > 자료형의이름을 T로두었다.
<>꺽쇠 붙으면 모든자료형을 다 넣을수 있다.
T 라는 이름에 불려오는 멤버변수의 자료형들은 자동으로 치환되어 불려오게된다.(편리)
(ex. 우리는 vector<자료형> 에서도 꺽쇠를 본적이있다. 벡터의 이부분또한 template 이다/모든자료형이 다 들어올수있다)
템플릿의 단점 : 헤더와(선언) CPP(정의)는 보통 나뉘어서 미리컴파일과 메인컴파일을 나눌수있는데
템플릿은 헤더(선언)부분에 정의가 붙는다.
때문에 static 이라는 것이 사용된다(현재 진도x,다음주진도예정) (static = 고정된 이라는 의미)
static template<typename T>
템플릿의 단점? 선언과 정의를 따로(헤더와 CPP에 따로) 둘 수 없다.
우클릭으로 빠른정의만들기 할때 CPP에연결이되지 않으며 헤더파일 아래쪽에 생성/연결된다.
이는 즉 컴파일 작업이 이루어질때 utility 가 포함된 cpp 갯수만큼 컴파일 작업이 여러번 진행된다.
때문에 static 이라는 고정기능을 사용한다. (솔찍히 아직 잘 이해가 되지 않는 느낌이다)
template<typename T> / static void Swap / static void Shuffle / 함수 사용 전후 코드
위의 멤버변수는 card 이고 아래는 huda 인 이뉴는
같은솔루션 파일에서 다른 코드의 이름과 중복을 피하려고 이름 변경 하였기때문이다.
그부분은 신경쓸 필요 없다.
솔찍히 크게 바뀌는게 없다 생각될수 있으나 같은 기능의 합수를 여러번 만들지 않고 사용할수 있게되기때문에
더 복잡하고 고수준의 코드를 짜기위해서는 꼭 필요 할 듯 하다.
Utility.h 헤더파일또한 메인헤더파일인 stdafx.h 에 포함시킬때 주의할점은
유틸리티 헤더파일에는 스왑과 셔플의 함수가 들어있는데 이 함수들이 만일
블랙잭 섯다 등에 사용되는 헤더파일의 아래에 위치할경우 오류가 생긴다!
꼭 프로그램의 작동순서인 위에서 아래 방향을 참고하여 함수가 사용되기위해서 위쪽에 위치시켜야된다.
*알아두면 유용한 기능*
*ctrl + s 저장은 인텔리센스를 다시 잡아주는 역활도함. 자주쓰자 (작업중인 코드 저장을 위해서라도)
(오류를 수정하였을때 오류.주의 등이 그대로 남아있는 경우에 인텔리센스를 바로 다시잡아보면좋다)
클래스의 .h(헤더) / .cpp 를 왕복하기 좋은 단축키설정. ctrl + ~ 키로 해두면 편리하다. (아래사진 참고)
미리컴파일된 헤더 설정하기 (아래 사진 참고) 이설정을 해두면 자동으로 미리컴파일이 돌아간다.
'2D 프로그래밍 수업(일부비공개)' 카테고리의 다른 글
수업 61일차 - 사각형과 점 충돌, 원과 점 충돌, 마우스 이벤트 (0) | 2023.01.11 |
---|---|
수업 60일차 - 카메라 가두기 2탄, 뷰포트, 투영행렬 (0) | 2023.01.10 |
수업 32일차 - static (0) | 2022.11.23 |
수업 31일차 - 가위바위보 하나 빼기 풀이 (0) | 2022.11.22 |
수업 28일차 - 다수 가위 바위 보 (0) | 2022.11.18 |
댓글