본문 바로가기

분류 전체보기270

[ C++ 6, 7, 8, 9일차 ] 자료구조 시작, T 템플릿, 콘솔 엔진 제작 시작 자료구조선형/비선형 자료구조 : 연속적/비연속적 메모리 구조 선형 자료구조배열 : stack에 할당동적배열 : heap에 할당 - 배열- 동적 배열- 연결 리스트- 스택을 구현해 보는 작업을 했다.  구현 후에, template T로 범용성을 넓혀 구현하는 작업도 진행하며 템플릿의 특징을 정리해 보았다.  template T - .h 헤더파일에 모두 구현해야 함. (컴파일 타임에 다 해석되어야 하기 때문)     .cpp에 구현도 가능하지만, 구조가 이상해짐  - 템플릿이 복잡성을 증가할 수 있다.    예) const char*같은 경우, 따로 선언이 필요.     -> 템플릿을 만들기 전에, 사용 범위 다시 생각해 보고 구현하기  - 템플릿 생성자에서, 기본 생성자 초기값 설정을 다음과 같이 설정하면.. 2025. 1. 8.
[ C++ 4일차 ] static, 형변환, RTTI, 파일입출력, 비트 배열 **개념의 자세한 내용이 아닌 기존 독학 내용을 제외한 강의에서 새롭게 알게 된 내용들을 정리하였다. 복습 내용~friend가 간편하지만 Getter/Setter로 하는 연습하기!~  staticcpp 밖으로 넘기지 않음. 변수는 최대한 범위를 제한하는 것이 좋다. static 변수는 코드 영역에서 메모리가 잡히기 때문에 (code/data/stack/heap 중)따로 초기화 필요. 선언하면 여러 인스턴스가 static 변수를 공유, 재활용한다.    형변환cpp는 4가지 형변환const_cast : const를 추가/제거static_cast : 주로 일반 형변환reinterpret_cast : C스타일 형변환과 동일한 성질, 강제 형변환. static_cast보다 강력하지만 안전하지 않음 dynamic.. 2024. 12. 30.
[ C++ 3일차 ] 상속, 객체와 포인터의 관계, virtual 함수, 연산자 오버로딩 **개념의 자세한 내용이 아닌 기존 독학 내용을 제외한 강의에서 새롭게 알게 된 내용들을 정리하였다. 복습 내용 ~얕은 복사는 원본과 같은 주소 값을 가리킨다. 깊은 복사는 원본 값을 다른 주소에 복사하여 저장하는 것. 따라서 얕은 복사 시, 원본은 메모리 해제에 주의해야 함. ~ 접근 제한자 protected 확장가능성을 염두에 두고 사용하는 접근 제한자이다. 이 때문에, 많은 프로그램에서 protected를 많이 사용하였지만, 결과적으로 확장하지 않는 경우가 많았다고 한다. 따라서 요즘은 과도하게 확장을 고려하지 않고, 확장해야 할 때가 온다면 수정하는 추세라고 한다.  소스파일(.cpp)과 헤더파일(.h) 이동 단축키같은 이름의 소스파일과 헤더파일은 ctrl + k + o로 이동이 가능하다.  in.. 2024. 12. 27.
[ C++ 2일차 ] class, 동적 메모리, C++의 고유 문법, 지평좌표계.. **개념의 자세한 내용이 아닌 기존 독학 내용을 제외한 강의에서 새롭게 알게 된 내용들을 정리하였다.  C++에 대한 정확한 자료들은 다음 두 페이지를 참고하자. https://learn.microsoft.com/ko-kr/cpp/cpp/?view=msvc-170 C++ 문서 - 시작, 자습서, 참조.Microsoft C++ 및 Visual Studio 사용자를 위한 C++ 프로그래밍 참조.learn.microsoft.comhttps://en.cppreference.com/w/ cppreference.comNull-terminated strings:    byte  −   multibyte  −   wideen.cppreference.com 특히 구글링 시, msdn (+검색 내용)을 하면 더 정확하다고.. 2024. 12. 26.
[ C++/문제 해결 ] class의 깊은 복사와 임시 객체를 통한 생성 오류 수업 중 이슈 확인깊은 복사에서 다음 코드 내용과 같이 Player player2 = Player(player1);으로 임시 객체를 만들어 생성 시,  Player player1 = Player("Alien", 0, 0); Player player2 = Player(player1);다음과 같은 에러가 생긴다.  1) player2에 player1 임시 객체 할당 전2) 할당 후, player1.Print();3) player1.Print();가 끝난 후, 임시 객체를 최적화하여 name 증발 4) 최종 출력 화면   다음과 같이 임시 객체를 생성하지 않고 초기화하면 문제가 생기지 않는다! //Player player2 = Player(player1);로 임시 객체를 만들어 초기화하면 최적화당해 .. 2024. 12. 26.
[G-STAR/G-CON 2024] 지스타 컨퍼런스 2024 Day1 후기 인천에서 첫 지하철을 타고 지스타에 날아왔다..!바로 컨퍼런스를 듣기 위해!!! 우선, 다음 사진에 북마크 한 프로그램에 참여하였다. 이후 시간은 원격근무를 해야 했기 때문에 아쉽게도 참여하지 못하였다.  1. 라이브 게임 서비스하듯이 신규 게임 개발하기2. 창작과 혁신의 새로운 동력, 생성형 AI의 지속 가능한 활용 전략과 대비3. 2024년 이후의 Steam과 PC 게임4. 파이널 판타지 Ⅶ: 시대를 초월한 게임 제작의 도전과 리메이크 프로젝트5. 혼자 만드는 꿈, '안녕서울'의 실패와 재도전의 여정  [라이브 게임 서비스하듯이 신규 게임 개발하기]-BBQ PJ 개발 중단 원인-1. ‘개발진의 역량 파악 부족’          기존 2D 프로젝트에서 첫 3D 프로젝트의 차이 간과.     개인 의견 .. 2024. 11. 14.