기초16 7. C++ friend, 동적메모리 관리, 클래스 상속에 대해서 알아보자. C++ Friend 에 대해서 객체지향 프로그래밍의 핵심 원칙중 하나는 캡슐화, 그리고 데이터 은닉이다. 하지만 때로는 예외를 둘필요가 있는데, C++에서는 friend 키워드를 사용하여 은닉성의 예외를 두기도 한다. Friend 키워드는 C++에서 제공하는 특별한 접근 권한 지정자로. 다른 클래스나 함수에게 자신의 private 또는 protected 멤버에 접근할 수 있는 권한을 부여한다. 해당 기능으로 코드의 효율성이나 유연성을 높이기 위해서 제공이 된다. 1. 전체 클래스 권한 부여.class PlayLevel{ // 다른 멤버들... friend class DesignedLevel; // DesignedLevel 클래스에 접근 권한 부여private: int mCompon.. 2025. 5. 21. 0. Direct X 기초 이해하기 : SDK, 라이브러리, Dx역사. DirectX 기초 이해하기: SDK, 라이브러리, 그리고 DirectX의 역사 게임 및 3D 그래픽 프로그래밍에서 가장 중요한 위치를 차지하는 Direct X.그런 다이렉트 X에 대해서 오늘은 알아보고자 한다. 하지만 그전에 용어에 대해서 알아할 개념들이 몇가지 있다. SDK 란 무엇인가?기본적으로 다이렉트 X를 개발하는 사람들은 DX SDK를 사용한다. 즉, SDK는(Software Development Kit)소프트웨어 개발 키트의 약자이다.정확한 정의 : SDK는 특정플랫폼, 운영체제, 또는 프로그래밍 언어를 위한 개발도구 모음.SDK vs API : SDK는 API(Application Programing Interface)를 포함하는 더 큰 개념이다. API는 소프트웨어 간의 통신 방법을 정.. 2025. 5. 21. 4. C# 인터페이스 및 추상클래스 ,다형성 C#의 인터페이스와 추상 클래스, 그리고 다형성의 활용 C#에서는 클래스 간의 관계를 정의하거나 특정 기능을 보장하기 위해 **추상 클래스(Abstract Class)**와 **인터페이스(Interface)**를 사용한다. 이 글에서는 RPG 전투 시뮬레이션을 예시로 하여, 이 두 개념과 더불어 **다형성(Polymorphism)**을 어떻게 활용할 수 있는지 설명한다. 1. 인터페이스란? 인터페이스는 클래스가 따라야 할 **명세(contract)**를 정의한다. 구현을 포함하지 않으며, 오직 시그니처만을 포함한다. 이를 통해 클래스가 특정 기능을 반드시 제공하도록 강제할 수 있다.interface ISpecialAbility{ void UseSpecial(Character target);}ISp.. 2025. 4. 21. 3. C# 클래스 클래스의 구분내장형식(built-in Type, 닷넷 프레임 워크)Console, String, math…사용자 정의 현식(user defined type)using System;using System.Collections.Generic;using System.Linq;using System.Threading.Tasks;namespace ConsoleApp1{ class MyFirstClass { static void Staticmethod() => Console.WriteLine("[1] 정적메서드"); void InstaceMethod() => Console.WriteLine("[2] 인스턴스 메서드"); static void Main() .. 2025. 4. 21. 2. C# 배열, 함수, 델리게이트 컬렉션이름 하나로 데이터 여러개를 담을 수 있는 그릇C# 컬렉션 - 배열(array) 리스트(list), 사전(dictionary)등등배열var array = new string[] {"Array", "List", "Dictionary"};foreach (var arr in array) {Console.WriteLine(arr);}- 출력값ArrayListDictionary리스트var list = new List {"Array", "List", "Dictionary"};foreach (var item in list ) {Console.WriteLine(item );}- 출력값ArrayListDictionary사전(Dictionary)var dictionary= new Dictionary{{0,"Array.. 2025. 4. 21. 1. C# 기초 1. CLR의 타입 시스템 - CLR : 공통 언어 런타임, 즉 모든 C# 코드의 실행 환경 - 타입 안정성 : 잘못된 타입 사용방지 - 모든 타입은 'System.Object'에서 파생됨. 2. 값 타입 - struct, enum 두가지 형식(값 형식은 sealed) - int, long, double, char, bool등, - 스택에 할당되며, 값 자체를 저장한다. - 변수간의 복사는 값 자체의 복사이다.int // System.Int32long // System.Int64double // System.Doubleint a = 0; // System.Int32 a = new System.Int32(); - 변수간 복사는 값자체의 복사이므로, GC 관여없이 효율적이다. int a = 10;in.. 2025. 4. 21. 1. 네트워크 : UDP 서버, 클라 채팅프로그램 서버 구현 : UDPServer.csusing System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Net;using System.Net.Sockets;namespace UDP_Server1{ class Program { const int SERVERPORT = 9000; const int BUFSIZE = 512; static void Main(string[] args) { int retval; Socket sock = null; .. 2025. 3. 14. 1. 수학 : 백터 기초 개념 백터 기본 개념정리 벡터는 크기 & 방향을 모두 가진 수량을 뜻한다. 그리고 세기(힘), 변위, 속도를 가지고 있는데, 이는 3차원에서 플레이어가 바라보는 방향등을 의미하고 한다. 그리고 벡터는 기본적으로 지향선분으로 표시를 한다. 여기서 지향선분이란? 시각적으로 벡터는 방향이 있는 선분으로 표시를 하는데 이를 뜻함. 위에 사진에서 보듯, 화살표는 벡터의 방향을 가리키며, 선분의 크기는 벡터의 크기를 나타낸다. 그리고 이 기다린 화살표(벡터)가 위치가 바뀌어도 딱히 별로 중요하지 않는데, 이는 벡터가 있는 위치를 바꾼다고 해도 벡터의 성질(선분의 길이, 방향)은 변하지 않기 때문이다. 이렇게 벡터 u를 이동해서 v와 완전히 겹치게 된다면 이 둘을 구분을 할 방법이 없다. 이유는 둘다 성질이 같은 상.. 2025. 1. 14. 이전 1 2 다음