본문 바로가기

프로그래밍79

[C++] 복습용 키워드 정리 - 10 템플릿은 어떤 자료형이 들어올 지 모르지만, 같은 처리를 요구할 경우에 사용한다. 클래스와 함수에 사용이 가능하며 각각 클래스 템플릿, 함수 템플릿이라고 한다. 사용법은 간단하다. 템플릿이라 선언하고, 들어올 타입들을 총칭할 이름을 설정하고 그 이름으로 함수 혹은 클래스를 작성하면 끝이다. template T add(T a, T b) { return a + b; } 위의 코드에서 어떤 자료형이 인자로 들어올 지 모르기 때문에 템플릿으로 함수를 작성하였다. 매개로 들어오는 자료형과 반환되는 자료형은 임의로 지정해둔 T라는 이름으로 되어 있다. 인자를 어떤 것을 넣냐에 따라 반환형이 달라진다. int를 넣으면 int형으로 반환이 되고, float로 넣으면 float형으로 반환이 된다. 클래스 템플릿을 작성할.. 2023. 4. 3.
[C++] 복습용 키워드 정리 - 9 C언어에 있는 자료형으로 주소값을 담는 변수이다. int a는 정수를 담는 변수지만 int* b는 int형 변수의 주소를 담는 변수다. 따라서 b = a가 성립이 되지 않고 b = &a로 주소값을 담아야 b에 값이 담긴다. 또한 이렇게 주소값을 담고 있기 때문에 b에서 변수 a에 접근이 가능하고 b를 통해 a의 값을 변경할 수 있다. a = 10; *b = 20; 위와 같은 코드가 입력이 되면 처음 a에는 10이라는 값이 담겨 있지만 b가 가지고 있는 주소에 접근해 값을 변경하여 20이라는 값을 담았기 때문에 나중에 a의 값을 출력하면 20이라는 값이 나온다. 또한 포인터 변수는 주소를 담고 있기 때문에 동적할당에 이용이 된다. C에선 malloc, C++에선 new라는 키워드로 동적할당이 되는데 동적할.. 2023. 4. 2.
[Game] DirectX11 모작 - 포켓몬스터 - 1 모작 게임은 완성이 되었지만 늦게 나마 어떻게 진행이 되었는지 써보려고 한다. 포켓몬들은 서로 다른 포켓몬들이 존재하지만 한 종류의 포켓몬은 여러 객체로 존재할 수 있게 포켓몬이라는 부모 클래스를 두고 그 밑으로 각각 종류별로 자식 클래스들을 두었다. 각 포켓몬은 트레이너 클래스가 가지고 있는 deque 배열에 들어간다. deque로 작성한 이유는 포켓몬은 순서가 자주 바뀌고 그 순서는 앞뒤 상관 없이 변하기 때문에 vector 보다는 deque가 더 작성이 편하다고 판단했기 때문이다. 이 deque 배열은 Pokemon이라는 부모 클래스로 업캐스팅 된 객체들을 통해 관리를 하고 있어서 공통된 클래스를 상속 받은 다른 클래스들을 관리할 수 있다. 또한 포켓몬은 최대 4개의 스킬을 가질 수 있고 이 스킬들.. 2023. 4. 2.
[C++] 복습용 키워드 정리 - 8 정수와 실수는 수의 범위를 의미한다. 정수는 소수점 이하의 단위로 떨어지지 않는 수를 의미한다. 0 보다 큰 정수를 양의 정수, 0 보다 작은 정수를 음의 정수라고 하며 정수는 음의 정수와 양의 정수 그리고 0을 포함한다. 실수는 정수 보다 더 큰 개념으로 기본적으로 정수를 포함하고 소수점 단위로 넘어가는 수들을 포함한다. 프로그래밍에서는 정수는 보통 int 변수에, 실수는 float 변수에 담긴다. float 변수는 소수점을 표기할 때 1.05f와 같이 표기한다. 맨 뒤에 있는 f는 무엇일까? 이는 저 숫자가 담기는 변수가 float형 변수임을 표시하기 위해 사용한다. f를 빼버리면 8바이트 실수 변수인 double을 선언한 것과 같은 효과가 나타난다. 컴퓨터는 자료를 0과 1의 이진법으로 저장한다. .. 2023. 3. 29.