본문 바로가기

프로그래밍/공부44

[C++] 비트 연산자 수업을 듣는 도중 오랜만에 나온 비트 연산자, 하지만 뭔가 머릿속에 확 남지 않아 다시 정리해본다. 비트는 무엇인가. 간단하다. 컴퓨터에서 가장 작은 단위는 바이트이다. 이 바이트는 다시 8비트로 이뤄져 있다. 이 8비트는 무엇인가 바로 여덟 자리의 이진수이다. 00000000 이것이 바로 8비트이다. 그렇다면 비트 연산자는 무엇일까? 바로 이 비트를 연산하는 연산자(Operator)이다. 이 중 밑의 3개는 시프트 연산자라 하여 비트의 이동을 연산하는 연산자이다. 비트 연산자 &, |, ~, ^는 비트에 대해 논리 연산을 한다. 참과 거짓을 반환하는 논리 연산자처럼 비트 연산자는 두 개의 비트에 대해서 결과에 따라 1과 0을 반환한다. 그렇다면 밑의 시프트 연산자는 어떻게 연산이 될까? 예를 들어 in.. 2022. 12. 13.
[그래픽스] 더블 버퍼링(Double Buffering) WinAPI로 간단하게 그림을 그리는 코드를 작성하였다. void ObRect::Render() { MoveToEx(g_MemDC, position.x + 100 * cosf(45 * ToRadian + rotation) * scale.x, position.y + 100 * sinf(45 * ToRadian + rotation) * scale.y, NULL); LineTo(g_MemDC, position.x + 100 * cosf(135 * ToRadian + rotation) * scale.x, position.y + 100 * sinf(135 * ToRadian + rotation) * scale.y); LineTo(g_MemDC, position.x + 100 * cosf(225 * ToRadian.. 2022. 12. 12.
[C++] 추상클래스 and 인터페이스 추상클래스와 인터페이스는 무엇일까. 이를 알기 위해서는 우선 순수가상함수라는 것을 알아야 한다. https://eunsikk.tistory.com/5 [C++] 가상함수 & 순수가상함수 클래스는 내부의 멤버로 변수, 구조체, 함수 등을 가질 수 있다. 이 때, 함수를 정의하고 이를 자식 클래스에서 같은 이름, 같은 매개변수의 함수를 사용하기 위해서는 어떻게 해야 할까? 이 경우 eunsikk.tistory.com 여기서 설명했듯이 순수가상함수는 반드시 자식 클래스에서 재정의가 이뤄져야 하는 가상함수이다. 그리고 이 순수가상함수가 하나라도 포함이 되어 있다면 그것을 바로 추상클래스라고 부른다. 추상클래스의 특징은 바로 객체화가 불가능하다는 것이다. 순수가상함수는 오로지 상속에 사용하기 위한 용도이기 때문에.. 2022. 12. 12.
[C++] 가상함수 & 순수가상함수 클래스는 내부의 멤버로 변수, 구조체, 함수 등을 가질 수 있다. 이 때, 함수를 정의하고 이를 자식 클래스에서 같은 이름, 같은 매개변수의 함수를 사용하기 위해서는 어떻게 해야 할까? 이 경우 사용하는 것이 바로 '가상함수' 이다. 가상함수란, 클래스의 상속 관계에서 부모 클래스가 자식 클래스에게 같은 이름, 같은 매개변수의 함수를 상속시켜 자식 클래스에서도 사용이 가능하게 끔 하는 것을 의미한다. 코드로는 virtual이라는 키워드를 붙여서 사용하게 되는데, virtual이 붙은 함수들은 가상함수 테이블에 그 주소가 등록이 되어 자식 클래스에서 함수를 호출할 때, 위치를 확인하여 찾아갈 수 있게 된다. class Basic { public: virtual void Print(); // virtual .. 2022. 12. 12.