일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 더 지니어스 양면포커
- vector size
- member function pointer
- placement new
- suffix return type
- increment operator
- c++ multi chatting room
- this call
- operator overloading
- base from member
- virtual function
- constructor
- C++
- new&delete
- virtual function table
- c++ basic practice
- discord bot
- delete function
- std::vector
- std::endl
- std::cout
- virtual destructor
- pointer to member data
- vector capacity
- virtual inheritance
- dynamic_cast
- conversion constructor
- return by reference
- std::ostream
- diamond inheritance
- Today
- Total
목록2024/09 (32)
I'm FanJae.
1. Chapter 10. 연산자 오버로딩 I 1-1. 두 가지 방법의 연산자 오버로딩 - 연산자 오버로딩을 이해하는 가장 좋은 방법은 연산자를 직접 오버로딩 해 보는 것이다. - 연산자를 오버로딩 하는 과정에서 자신이 이해하지 못한 부분이 드러나면서, 그 부분을 이해하게 되는 경우가 많기 때문이다. 따라서 앞서 예제 GFunctionOverloading.cpp에서 보인 Point 클래스를 대상으로 아래의 요구대로 연산자를 오버로딩 해보자. ① Point 클래스에 대해서 다음 조건을 만족하는 형태로 - 연산자를 오버로딩 해보자.- 전역함수 기반으로 오버로딩- 멤버 별 - 연산의 결과를 담은 Point 객체 반환 ② Point 클래스에 대해서 다음 조건을 만족하는 형태로 += 연산자와 -= 연산자를 오버..
1. Chapter 08. 상속과 다형성 1-1. 상속 관계의 확장과 추상 클래스① 제 EmployeeManager4.cpp를 확장하여 다음 특성에 해당하는 ForeignSalesWorker 클래스를 추가로 정의해보자 - "영업직 직원 중 일부는 오지산간으로 시장개척을 진행하고 있다. 일부는 아마존에서, 또 일부는 테러의 위험이 있는 지역에서 영업활동을 진행 중에 있다. 따라서 이러한 직원들을 대상으로 별도의 위험수당을 지급하고자 한다." - 위험수당의 지급방식은 위험의 노출도에 따라서 다음과 같이 나뉘며, 한번 결정된 직원의 '위험 노출도'는 변경되지 않는다고 가정한다(const) - 리스크 A: 영업직의 기본급여와 인센티브 합계 총액의 30%를 추가로 지급한다 - 리스크 B: 영업직의 기본급여와 ..
※ Chapter 06은 별도의 연습 문제가 없었다. 1. Chapter 07. 상속(Inheritance)의 이해1-1. 상속과 생성자의 호출① 앞서 상속관계에 놓여있는 클래스의 생서앚 정의 및 호출 방식에 대해 설명하였다.- 이 내용을 바탕으로 다음 클래스에 적절한 생성자를 삽입해보자.- 그리고 이의 확인을 위한 main 함수를 적절히 정의 해보자.#include class Car{private: int gasolineGauge;public: int GetGasGauge() { return gasolineGauge; }};class HybridCar : public Car{private: int eletricGauge;public: int GetElecGague() { return eletricG..
1. 복사 생성자의 정의- 문제 04-3의 문제 2를 통해서 NameCard를 정의하였다. 그런데 이 클래스도 생성자 내에서 메모리 공간을 동적 할당하기 때문에 복사 생성자가 필요한 클래스이다. 이에 복사 생성자를 적절히 정의해보기 바라며, 복사 이후에 문제가 발생하지 않음을 다음 main 함수를 통해서 확인하기 바란다. int main(void){ NameCard manClerk("Lee", "ABCEng", "010-1111-2222", COMP_POS::CLERK); NameCard copy1 = manClerk; NameCard manSENIOR("Hong", "OrangeEng", "010-3333-4444", COMP_POS::SENIOR); NameCard copy2 = manSENIOR; ..
1. logging 설정import logginglogging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')- logging을 하도록 기록해두면, 오류를 잡는데 있어서 상당히 유용하다.- 본인은 우선, 개발을 진행중이였기에 logging level을 DEBUG로 처리하였다.2. 초기 셋팅2-1. 기본 전제- 프로클럽 모드에서 가장 많이 쓰이는 4-3-3 포메이션(DM)을 예시로 하였다.- 가장 일반적으로 많이 하는 포메이션이고, 여러 인원이 처음 접하기 무난한 포메이션이다.- 기본적인 드래프트 구현을 우선으로 했다. 남은 포지션 출력 및 충돌 처리는 고려하지 않았다.- 충돌 처리가 정말 중요한 문제..
1. Chapter 04. 클래스의 완성1-1. 정보은닉과 const① - Chapter 03에서 제시한 과일장수 시뮬레이션 예제 FruitSaleSim1.cpp에서 정의한 두 클래스의 멤버변수는 private으로 선언이 되어있다. 그러나 다음 조건을 유지할 수 있는 장치는 아무것도 되어있지 않다.- 사과의 구매를 목적으로 0보다 작은수를 전달할 수 없다 - 위의 제약사항을 항상 만족시킬 수 있도록 예제를 변경하고, 예제의 안정성을 높일 수 있도록 일부 함수를 const로 선언해보자.#include using namespace std;// 과일장수 클래스class FruitSeller{private: int APPLE_PRICE; int numOfApples; int myMoney;pub..
1. MBCS와 WBCS 동시지원1-1. 동시 지원의 필요성과 Windows 스타일 자료형- 프로그램 구현시 여러 측면을 고려해야한다. - 기존 개발된 프로그램과의 호환성 및 사용자 시스템에서 지원하지 못하는 경우로 인해 유니코드로만 동작 시킬 수 없다. typedef char CHAR;typedef wchar_t WCHAR;#define CONST const;typedef CHAR * LPSTR;typedef CONST CHAR * LTCSTR;typedef WCHAR * LPWSTR;typedef CONST WCHAR * LPCWSTR;- Windows에서는 typedef 키워드를 통하여 몇몇 기본 자료형에 Wind..
1. Chapter 03. 클래스의 기본 1-1. 구조체 내에 함수정의하기① - 2차원 평면상에서의 좌표를 표현할 수 있는 구조체를 다음과 같이 정의하였다. - 위의 구조체를 기반으로 다음의 함수를 정의하고자 한다. (자세한 기능은 실행의 예를 통해서 확인하도록 한다).- 단, 위의 함수들을 구조체 안에 정의를 해서 다음의 형태로 main함수를 구성될 수 있어야 한다.struct Point{int xpos;int ypos;};void MovePos(int x, int y); // 점의 좌표이동void AddPoint(const Point &pos); // 점의 좌표증가void ShowPosition(); // 현재 x, y 좌표정보 출력#include struct Point{ int xpos; int y..
- 지난 시간까지 기본적인 봇을 실행하는 작업까지 했으니 이제 Project를 Git에 추가해서 관리해보자.- Git을 설치하는 방법은 따로 다루지 않았다. 즉, Git은 추후 별도 포스트로 다루거나 여기선 남겨두겠다. 1. Git 연결 1-1. git 저장소 생성git init- 프로젝트에 git init을 입력해 git 저장소를 새로 생성해준다.- 그렇게 하면 현재 디렉토리에 .git이라는 숨김 디렉토리가 생성된다. 1-2. .gitignore 추가.env- .env 파일에는 환경변수 값 (TOKEN_KEY,API KEY) 등이 들어가 있다.- 이를 git과 같은 공개 저장소에 절대 넣으면 안된다. - 따라서 프로젝트 디렉토리에 반드시 .gitignore를 추가해야한다. - 물론 본인은 private..
열혈 C++ 프로그래밍(윤성우 저)의 연습문제를 다뤘습니다.개인의 연습을 위해 다룬 것이며, 예제에 실제 공개된 코드는 첨부하지 않았습니다. 1. Chapter 02. C언어 기반의 C++ 21-1. 참조자 기반의 Call-by-reference 구현① 참조자를 이용해서 다음 요구사항에 부합하는 함수를 각각 정의하여라.아래 각 함수를 호출하여 그 결과를 확인하는 main 함수 까지 작성하여라. - 인자로 전달된 int형 변수의 값을 1씩 증가시키는 함수- 인자로 전달된 int형 변수의 부호를 바꾸는 함수#include void func1(int &n){ n++;}void func2(int& n){ n *= -1;}int main(){ int n = 3; func1(n); std::cout ② 앞서 소개..