최근 게시물

[C++] Functor (또는 함수 객체) 연습

이미지
c++ 보는 책에서 펑터 개념을 알려줬는데 처음에 이해가 안 가서 안 보고 있었다가 오늘 다시 보고 이해하면서 책의 예제와 비슷한 코드를 짜 보았다. 클래스 구조는 이렇다. 순수 가상 함수를 담고 있는 추상 클래스인 RetRule 클래스를 ToValue 클래스와 ToIndex 클래스가 상속받고 있다. 파일 구조는 다음과 같다. main.cpp RetRule.cpp Rules.cpp functions.cpp header/      RetRule.h      Rules.h      functions.h main.cpp RetRule.h / RetRule.cpp Rules.h / Rules.cpp functions.h / functions.cpp 실행 결과 max함수의 세 번째 인자로 펑터를 사용하여 배열에서의 가장 큰 값을 가져올지 배열에서의 가장 큰 값의 인덱스 값을 가져올 지 선택이 가능하다. 추가로, 펑터를 함수 인자로 할 때 함수의 매개변수 기본값 설정을 하여 사용할 수 있었다. 헤더 파일에만 기본값을 지정해 주면 사용이 가능하여, 필요에 따라 max(arr, size); max(arr, size, ToIndex()); 의 두 가지 형태로 사용이 가능하다. 펑터를 어떻게 이용할 지에 관하여는 많이 사용하거나 응용하여 생각 해 봐야 할 것 같다. C++의 기본 STL에서 지원하는 std::function을 이용하여 그냥 함수 / 람다식 / 펑터를 모조리 담을 수 있는 인자로 사용이 가능할 것 같다. 람다와 std::function은 추가로 공부해야 한다.

[개발] Sublime Text 3 플러그인 개발

이미지
다음과 같은 플러그인을 만들게 되었다. proj-manager-plugin ---README.md--- proj-manager-plugin 플러그인 설명 C/C++ 개발 환경에서 개발 편의성을 위해 사용하는 플러그인. 프로젝트 폴더 자동생성, 생성하는 클래스에 따른 헤더파일 생성/분리 자동화, 프로젝트 폴더에 자동 작성된 배치 파일을 이용한 빌드 시 현재 폴더에 따른 빌드시스템 최신화 개발 목적 Sublime Text 3 + Mingw를 이용한 프로그래밍 연습, 개발 등 C/C++ 개발 시 개발 환경에 따른 빌드 시스템을 구축하기 번거롭고, 클래스 작성 시 IDE같은 통합 개발 환경의 개발 편의성을 따라가지 못해 불편함이 있다. 그 점을 개선하기 위해 다음과 같은 플러그인을 만들게 되었다. 적용법 파일들을 Sublime Text 3 \ Data \ Packages \ User 폴더에 넣을 것. 완전 자동화는 아니기 때문에, 플러그인의 메인이 되는 proj-manager-plugin.py의 전역 변수들에서 프로그램 생성 이름(output), mingw 경로, gcc/g++ 이용 여부, 빌드 타겟 수정 등 각자 자신의 컴퓨터 환경에 맞게 경로 등을 수정하고 사용하면 된다. 단축키 단축키 파일을 정상적으로 적용 폴더에 넣으면, 다음과 같은 단축키를 사용할 수 있다. Ctrl + F1 : 현재 보고있는 파일의 위치에 프로젝트 단위 폴더 생성 다음과 같은 세 개의 파일·폴더가 생성된다.     bin/     header/     build.bat   Ctrl + F3 : 현재 보고있는 cpp파일의 이름을 가져와 클래스 헤더 파일을 작성한다.     헤더파일 작성은 물론 현재 보고있는 cpp파일에도 클래스의 기본 형태가 작성되니,     클래스.cpp 파일을 새로 생성 후 바로 단축키를 사용하면 되겠다.     Ctrl + F1과 연동하여 사용한다.   Ctrl + F5 : 현재 보고 있는 파일의 폴더 위치를 기반으로 서브라임 빌드 시스템 파

[c++] 열혈강의 c++ 문제 08-1 oop 프로젝트 6

https://drive.google.com/open?id=1y-rrFLRMO2obY5hjXznOE1MxWR1TZjZp 클래스 구조: Account NormalAccount : public Account HighCreditAccount : public Account AccountHandler     using Account 현재 구현한 것 : 클래스 간의 구조 virtual 함수 구현 구현이 되지 않은 것 : 입 출금 함수 메인 함수 테스트용 데이터 일부 getter/setter number setter(실제 계좌번호처럼) 2020-04-22 11:43 timestamp;

[c++] 열혈강의 c++ 문제 08-1

이미지
문제에서 원하는 대로 구조를 만들었다. 이에 해당하는 코드는 만들어서 업로드 해 뒀다. https://drive.google.com/open?id=1nFvjdgrvVNvWRlolGsH1sI2C0oZXDvlq

[c++] CodeUp 구조체 연습문제 1805

이미지
https://codeup.kr/problem.php?id=1805 계정이 없어서 일단 블로그에 올림. 나중에 계정 생성해서 올릴지는 모르겠음. https://drive.google.com/open?id=14dHcQszhrS2Nu0wZz9hguCQw7S3aYeu_ 파일 구조 proj-1805     -bin         -1805.exe     -header         -Maneuver_Unit.h         -Factory.h     -builder.bat     -Factory.cpp     -main.cpp     -Maneuver_Unit.cpp -main.cpp  -Maneuver_Unit.h -Maneuver_Unit.cpp  -Factory.h  -Factory.cpp -builder.bat -mingw-build.sublime-build