목록2024/11/28 (3)
3냥 집사이면서 게임 개발자입니다.
기존 벡터 공간의 덧셈과 곱셈의 연산을 활용해 벡터의 움직임을 구현했다. 두 가지 연산으로는 직선의 움직임만 표현할 수 있었다.회전은 원의 궤적을 따라 이동하는 움직이기 때문에, 이와 밀접하게 연결되어 있는 삼각함수를 이해하고자 한다. 요약삼각함수 : 직각 삼각형에서 측정할 수 있는 사잇각이 0도보다 크거나 90도 보다 작을 때 데카르트 좌표계 상에 대치하고 사잇각의 범위를 실수 전체로 확장한 대응관계를 삼각함수라고 한다. 삼각비 : 직각 삼각형을 구성하는 세 변에서 두 변을 뽑아 각각의 비례관계를 나타낸 것, 대표적으로 sine, cosine, tangent 가 있다. sin함수와 cos 함수의 개념은 직각 삼각형에서 출발했지만, 원점을 중심으로 반지름이 1인 평면 위의 단위원을 사용해 나타내면 ..
메서드 템플릿은 클래스 템플릿 안에 정의해도 되고 비템플릿 클래스 안에 정의해도 된다.메서드 템플릿은 클래스 템플릿에 복제 생성자와 대입 연산자를 정의할 때 특히 유용하다.* 가상 메서드와 소멸자는 메서드 템플릿으로 만들 수 없다. 간단한 예시 Grid IntGrid;Grid DoubleGrid;이렇게 만든 두 변수는 타입이 서로 다르다.Grid 객체를 받는 함수는 Grid 객체를 인수로 받을 수 없다.int 를 double로 강제 형변환해서 int원소를 double원소로 복제할 수는 있지만, 위 객체끼리는 대입하거나 변환이 불가능하다.따라서 다음과 같이 작성하면 컴파일 오류가 발생한다.DoubleGird = IntGrid;이유는 Grid 템플릿에 대한 복제 생성자와 대입 연산자를 어떻게 정의했는지에서..
기존의 함수를 작성하는 것을 매개변수화한다고 표현한다.템플릿은 매개변수화 개념을 더욱 발전시켜 값 뿐만 아니라 타입에 대해서도 매개변수화 한다.템플릿을 이용하면 주어진 값 뿐만 아니라 그 값의 타입에 대해서도 독립적인 코드를 작성할 수 있다. 예를 들어 int, Car, SpreadsheetCell 과 같은 각각의 타입마다 따로 정의하지 않고, 스택 클래스 하나에 모든 타입에 적용할 수 있게 만들 수 있다. 템플릿이 제공하는 기능이 정말 뛰어나다는 점과 C++의 템플릿 문법이 상당히 복잡해서 템플릿을 집중적으로 학습자고자한다.C++에서 제공하는 템플릿 기능을 주로 표준 라이브러리를 사용하는 관점에서 작성하려한다. 클래스 템플릿멤버 변수 타입, 메서드의 매개 변수 또는 리턴 타입을 매개변수로 받아서 클래스..