static Keyword
·
C++
1. class 외부에서의 static의 의미개념)정의된 단위에서만 볼 수 있게 한다.static으로 선언한 변수가 존재하는 그 파일 내부에서만 그 변수를 찾을 수 있다는 의미 예시 1)statickeyword.cpp 파일static int s_Variable = 5; staticmain.cpp 파일#include int s_Variable = 10;int main(){ std::cout  이 경우 10을 출력하게 된다. 예시 2)만약 위의 statickeyword.cpp에서 s_Variable 변수의 static 을 빼면 아래와 같이 이미 정의되어있다는 오류를 출력한다. 예시 3) 그렇다면 이 에러를 없애주고, static 변수를 쓰기 위해서는 staticmain.cpp의 변수를 extern으로 선언하..
unique_ptr 써보기
·
C++
메모리 누수를 막는 코드를 짜면서, 여러가지 방식을 테스트 하다가 지금까지 써보지 않은 방식인 스마트 포인터를 사용해 보면서 정리해 보았다.관련 코드는 아래 깃허브의 TEXT_RPG 폴더를 체크해 보면 된다.https://github.com/GbLeem/Cpp_Issues 1. unique_ptr 간단한 문법unique_ptr은 헤더에 정의되어있으며, 단 하나의 소유권만 가지게 하는 smart pointer이다.unique_ptr name; 위와 같은 모습으로 선언할 수 있다.주의할 것은 대입과 복사는 불가능하고, 이동 연산은 가능하다.unique_ptr uPtr1;unique_ptr uPtr2(uPtr1); //복사 불가능uPtr2 = uPtr2; //대입 불가능unique_ptr uPtr3(move..
텍스트 RPG 게임 만들기 (C++)
·
C++
싱글턴 객체 / 전방 선언 / cin관련 함수 / 포인터 / const 에 관한 이야기 C++를 이용하여 텍스트 기반 RPG 게임을 만드는 과정에 있어서 생긴 이슈들을 중점으로 글을 정리해 볼 것이다.1. 싱글턴 객체 생성싱글턴 객체의 생성은 어디에서 해야 할까?싱글턴 객체로 구현한 클래스를 정의한 cpp 파일에서 하면 된다.//Character.hprivate: static Character* instance; //Character.cpp...Character* Character::instance = nullptr;Character* Character::GetInstance(string name){ if (instance == nullptr) { instance = new C..
C++ 면접 대비 정리
·
C++
참고자료https://www.yamyamcoding.com/91c0b5c9-d4da-414a-8b24-35ccf8b8475c 게임 프로그래머 취업 비법서(인터뷰 자료)Notion 팁: 페이지를 생성할 때는 명확한 제목과 관련된 내용이 필요합니다. 인증된 정보를 사용하고, 페이지 주제를 확실히 하고, 주요 이슈에 대한 의견을 공유하세요.www.yamyamcoding.com1. 객체 지향과 C++C++는 객체지향과 절차지향 두개를 모두 지원하는 멀티 패러다임 언어이다,객체지향과 절차적 프로그래밍객체지향: 프로그램 설계 시 프로그램을 수많은 객체로 나누고, 이 객체들의 상호작용을 서술하는 방법절차적 프로그래밍: 프로그램 설계 시 함수를 중점으로 사용하여, 구조 로직을 설계객체지향의 특징 (장점)캡슐화같은 역할..
C++ 디자인 패턴
·
C++
수업시간에 배운 디자인 패턴에 대해 공부하고, 추가적인 내용도 정리해 보았다.참고한 자료는 아래와 같다.https://refactoring.guru/design-patterns/cpp Design Patterns in C++Turns a request into a stand-alone object that contains all information about the request. This transformation lets you pass requests as a method arguments, delay or queue a request's execution, and support undoable operations.refactoring.guruhttps://www.hanbit.co.kr/chann..
C++ TIL day 13
·
C++
1. string 관련 함수 정리어제 코딩테스트를 풀다가 다른 사람들의 풀이를 보던 도중, 내가 잘 쓰지 않는 함수들을 발견해서 이번 기회에 기억해보려고, 정리해 보았다.https://gbleem.tistory.com/21 string 관련 함수들 (tolower, isalpha, transform)문제 풀다가 접하게 된 string 처리 관련 함수를 정리해 보았다.참고한 자료는https://modoocode.com/275 C++ 레퍼런스 - transform 함수모두의 코드 C++ 레퍼런스 - transform 함수 작성일 : 2019-04-19 이 글은 21195gbleem.tistory.com2. 람다식위에서 말한 string 관련 함수들에 대해 공부하던 도중, 람다식을 쓰는 예제가 있어서 정리를 ..
Lambda Expressions
·
C++
transform과 for_each 함수를 공부하다 람다식을 사용하는 것을 보고 정리를 해보게 되었다.참고한 문서는 아래와 같다https://learn.microsoft.com/ko-kr/cpp/cpp/lambda-expressions-in-cpp?view=msvc-170 C++ 람다 식자세한 정보: C++의 람다 식learn.microsoft.comhttps://modoocode.com/196 씹어먹는 C++ 토막글 ② - 람다(lambda) 함수모두의 코드 씹어먹는 C++ 토막글 ② - 람다(lambda) 함수 작성일 : 2013-01-08 이 글은 99270 번 읽혔습니다. 이 글은 http://ciere.com/cppnow12/lambda.pdf 에서 가져왔고 한국말로 번역되었습니다. 또한 저의 ..
C++ TIL day 12
·
C++
1. 알고리즘 (코테 준비)오전에 알고리즘 관련수업을 듣고, 코딩테스트 문제를 풀었다.이때 substr 함수에 대해 잘 몰랐던 것 같아서 substr 에 대해 좀 더 공부해 보았다.https://gbleem.tistory.com/19 substr수업을 듣던 도중 substr 함수를 접하게 되어서, 이번 기회에 잘 기억해 보고자 다시 정리를 해보았다.아래의 자료를 참고해서 정리해 보았다.https://en.cppreference.com/w/cpp/string/basic_string/substr::substr -gbleem.tistory.com또한 코딩테스트를 풀면서, 예전에 풀었던 문제들이 생각나서 관련 유형을 다시 한번 풀어보고 정리해 보았다.https://gbleem.tistory.com/18 1차원 ..
C++ TIL day 11 (포인터 연산 문제)
·
C++
1. const 키워드 const 키워드를 언제 쓰고 어떤 역할을 하는지 궁금해서, 해당 키워드에 대한 공부를 해보았다.effective c++ 책의 항목 3 "낌새만 보이면 const를 들이대 보자!" 를 참고했다.https://gbleem.tistory.com/16 const 키워드블로그 글 TIL day8 에서도 한 번 언급했었는데, 중요하다고 생각이 들어 다시 정리해보려고 한다.effective c++의 항목 3을 많이 참고하여 정리했다.리마인드const 가 함수 앞에 있다면, 반환값을 상수gbleem.tistory.com2. 과제 풀이어제 3번 과제를 마치고 오늘은 4번 과제를 진행하였다.https://github.com/GBL22M/SCC_CH2-4 GitHub - GBL22M/SCC_CH2-..
const 키워드
·
C++
블로그 글 TIL day8 에서도 한 번 언급했었는데, 중요하다고 생각이 들어 다시 정리해보려고 한다.effective c++의 항목 3을 많이 참고하여 정리했다.리마인드const 가 함수 앞에 있다면, 반환값을 상수화 시키는 것const 가 함수 뒤에 있다면, 멤버 변수의 수정을 막는 것1. 포인터변수의 const순서대로비상수 포인터, 비상수 데이터비상수 포인터, 상수 데이터상수 포인터, 비상수 데이터상수 포인터, 상수 데이터#include using namespace std;int main(){ char greeting[] = "Hello\n"; char* p = greeting; const char* p = greeting; char* const p = greeting; const char* con..