2023/10 45
-
객체 지향 프로그래밍에서 중요한 디자인 패턴으로, 특정 클래스가 단 하나의 인스턴스만 가지도록 보장하고, 그 인스턴스에 대한 전역적인 접근점을 제공한다. 즉, 전역변수로 선언한것과 같은 역할을 한다고 이해하면 된다. 특징 인스턴스 제한. 싱글톤 패턴은 인스턴스가 한개만 존재하도록 제한한다. 전역적인 접근점 제공 어디서든 해당 인스턴스에 접근할 수 있는 접근점을 제공한다 공유 리소스 관리 전역적 접근점을 제공함으로, 단일 인스턴스가 공유되도록 할 때 유용하다. 이러한 특징점으로. 싱글톤 패턴은 게으른 초기화(Lazy Initalization)이 가능한데, 이는 인스턴스가 필요한 시점까지 전역변수의 생성을 지연할 수 있다. 그러나, 싱글톤은 메모리를 할당할 때 메모리공간에 저장되는데 이것이 한정적이라 싱글톤..
-
가상함수는 기본 클래스에서 선언되고 파생 클래스에서 재정의(override) 될 수 있는 함수이다. 가상 함수를 사용하면, 부모 클래스의 포인터나 참조를 사용하여 자식 클래스의 메서드를 호출 할 수 있으며, 실행 중 객체의 실제 유형에 따라 올바른 메서드가 호출된다. 이를 통해 다형성을 구현할 수 있으며, 코드의 유연성과 재사용성을 향상시킨다. 다형성을 지원하며, 객체 실 유형에 따라 다른동작을 수행할 수 있다. 기본 클래스에서 기본 동작을 정의하고 자식 클래스에서 필요에 맞게 다시 재정의 가 가능하다. 객체 지향 설계 원칙 중 하나인 "개방-폐쇄 원칙"(Open-Closed Principle)를 준수할 수 있다. 단점은 일반 함수보다 오버헤드가 더 많이발생하나, 무시할만한 수준이다. #include c..
-
-
파생클래스(자식 클래스) 의 객체를 기본 클래스의 객체로 변환하는것을 의미한다. 이것은 부모 클래스의 포인터, 또는 참조로 자식 클래스를 가리키는것을 말한다. Upcasting의 기본개념은 다음과 같다. 다형성을 구현할 수 있다. 여러 자식 클래스 객체를 동일 부모 클래스 포인터 또는 참조로 처리할 수 있다. 코드의 유연성을 높일 수 있다. 새로운 자식 클래스를 추가하더라도 기존 코드를 변경하지 않고 사용할 수 있다. 유의! 부모클래스에 정의되지 않은. 자식클래스 만의 함수에는 접근할 수 없다! class Animal { public: void makeSound() { cout
-
윈도우 API는 일반적인 C문법과 다르게 Winmain에서 코드가 실행된다. int APIENTRY wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPWSTR lpCmdLine, _In_ int nCmdShow) { UNREFERENCED_PARAMETER(hPrevInstance); UNREFERENCED_PARAMETER(lpCmdLine); // TODO: 여기에 코드를 입력합니다. // 전역 문자열을 초기화합니다. LoadStringW(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); LoadStringW(hInstance, IDC_DX3D2310, szWindowCla..
-
DXD색깔 출력하기 색을 출력하기 위해서는, 먼저 버퍼를 생성해서 color를 넣어주어야 한다. 버퍼에 넣기전에 먼저 Vertex에 생성해놓은 pos부분에 color도 받을 수 있도록 바꾸어준다. 위 코드에서 전에 만들어두었던 Vertex부분에 XMFLOAT4형태의 color를 만들어서 기입해준다. 이렇게 하면 struct Vertex형태의 데이터에는 pos와 color값을 두개 가지고 있게된다. 그후, INPUT_ELEMENT_DESC에서 POSITION 이외에도 COLOR값을 받는다는 표시를 해주어야 한다. DESC에서 데이터를 보낼 때, COLOR이 있다는 사실을 알려주고, 데이터형식과 앞부분 에 어떤 데이터가 추가로 존재하는지, 그리고 몃바이트가 사용되었는지 등을 전부 작성하여 표시해준다. DES..