전체 글 282

템플릿

템플릿이란?템플릿은 C++에서 제네릭 프로그래밍의 기초입니다.강력한 형식의 언어인 C++에서는 모든 변수에 프로그래머가 명시적으로 선언하거나,컴파일러에서 추론한 특정 형식이 있어야 합니다.그러나 많은 데이터 구조와 알고리즘이 어떤 형식에서 작동하든 동일하게 보입니다.템플릿을 사용하면 클래스 또는 함수의 작업을 정의하고,그러한 작업이 어떤 구체적인 형식에서 작동해야 하는지를 사용자가 지정하도록 할 수 있습니다. 템플릿 정의 및 사용 템플릿은 사용자가 템플릿 매개 변수에 대해 제공하는 인수를 기반으로컴파일 시간에 일반 형식 또는 함수를 생성하는 구문입니다. 예를 들어 다음과 같이 함수 템플릿을 정의할 수 있습니다. tamplate T minimum(const T& lhs, const T& rhs){ retu..

C# out 키워드

out 키워드는 다음 두 가지 상황에서 out 키워드를 사용할 수 있습니다. 값이 아닌 참조로 메서드에 인수를 전달할 수 있도록 하는 매개 변수 한정자로 사용형식 매개 변수를 공변(covariant) 으로 지정하는 인터페이스 및 대리자에 대한제너릭 형식 매개  변수 선언에서 사용   out의 매개 변수 한정자 사용 경우 out의 매개 변수 한정자의 사용을 말하기전에,매개 변수 한정자가 무엇인지 간단히 짚고 넘어가겠습니다. 매개 변수 한정자란?기본적으로 C#의 인수는 call by value로 함수에 전달됩니다.이는 변수의 복사본이 메서드에 전달된다는 의미와 같습니다. (= 깊은 복사) 값 형식의 경우 값의 복사본이 메서드에 전달되며, ( = 깊은 복사 )참조 형식의 경우 참조의 복사본이 메서드에 전달됩니..

C언어를 이용한 콘솔로 TEXTRPG를 만들면서 느낀 점

배열과 리스트의 차이를 면접용으로만 달달 외웠었는데,구조 어떤에 배열이 왜 편한지 리스트가 왜 편한지를 생각해보고 깨닫게해준 경험이었다. void DungeonInitial(_Dungeon dungeonArr[], Player* player, _Dungeon* dungeon)요런 함수가 있는데 뒤에dungeon이 있는 이유는 배열은 dungeon->beforePtr 접근이 안된다.때문에 배열을 통째로 째로 가지고 있는 것 즉,이전 던전에 입장할 수도 있으니까,배열의 시작 점 주소값을 가지고 있기 위해서 들고 있는 것이다. 이게 너무 비효율적이라고 느꼈고아 내가 리스트를 썼으면 구조체 1개 크기만큼의 메모리만 받아와도앞 뒤로 접근하면서 전체를 관리했을 텐데! 하고 아쉬웠다. 다음에 비슷한 구조를 짤 때는 ..

파일 복사 프로그램

복사할 파일명과 복사 후 생성되는 파일명을 입력받아서 파일을 복사하는 프로그램을 작성하라. 단, txt파일 뿐만 아니라 이미지 파일 등.. 모든 종류의 파일에 다 동일하게 적용할 수 있어야 한다. 복사 진행 과정을 백분율로 화면에 표시해주도록하고 n바이트씩 복사하도록 한다. ex) 4바이트 - 원본 파일 : source.txt - 대상 파일 : dest.txt#define _CRT_SECURE_NO_WARNINGS #include #include #include void copy_file(const char* src_file, const char* dest_file, size_t buffer_size) { FILE* src, * dest; char* buffer; size_t bytes_..