12월 19일

1. Day17

  • C++ 문법 학습
  • CH2 학습 가이드 - 12/19
  • C++ 복습 세션

2. C++ 문법 학습(Day17)

  • 과제 4 : 연금술 공방 관리 시스템 구현 진행 중

3. CH2 학습 가이드 - 12/19

  • 미니실습 : SRP(단일 책임 원칙) - FIleIO와 완전 분리
#include <iostream>
#include <vector>
#include <string>
using namespace std;

class InventoryManager
{
private:
    vector<string> items;
    // 내부에 FileIO포함 -> FileIO의 saveItems 사용
public:
    // 아이템 목록 관리 - O
    void addItem(const string& itemName)
    {
        items.push_back(itemName);
        cout << "[Manager] " << itemName << "을/를 인벤토리에 추가했습니다." << endl;
    }

    // 아이템 목록 관리 - O
    void removeItem(const string& itemName)
    {
        // 실제 삭제 로직 생략
        cout << "[Manager] " << itemName << "을/를 인벤토리에서 제거했습니다." << endl;
    }

    // 게터 함수
    const vector<string>& getItems() const { return items; }
};

class FileIO
{
public:
    void saveToFile(const string& filename)
    {
        cout << "[FileIO] 아이템 목록을 " << filename << "(으)로 저장 완료." << endl;
    }
};

int main()
{
    InventoryManager manager;
    manager.addItem("HP Potion");
    manager.addItem("Sword of Light");

    FileIO fileIO;
    fileIO.saveToFile("savegame.dat"); // 저장은 FileIO가 관리하도록 수정

    return 0;
}
  • 미니실습 : SRP(단일 책임 원칙) - FileIO를 InventoryManager 내부에서 선언해서 사용
#include <iostream>
#include <vector>
#include <string>
using namespace std;

class FileIO
{
public:
    void saveFile(const string& filename)
    {
        cout << "[FileIO] 아이템 목록을 " << filename << "(으)로 저장 완료." << endl;
    }
};

class InventoryManager
{
private:
    vector<string> items;
    // 내부에 FileIO포함 -> FileIO의 saveItems 사용
    FileIO fileIO;
public:
    // 아이템 목록 관리 - O
    void addItem(const string& itemName)
    {
        items.push_back(itemName);
        cout << "[Manager] " << itemName << "을/를 인벤토리에 추가했습니다." << endl;
    }

    // 아이템 목록 관리 - O
    void removeItem(const string& itemName)
    {
        // 실제 삭제 로직 생략
        cout << "[Manager] " << itemName << "을/를 인벤토리에서 제거했습니다." << endl;
    }

    void saveToFile(const string& filename)
    {
        fileIO.saveFile(filename);

    }
    // 게터 함수
    const vector<string>& getItems() const { return items; }
};



int main()
{
    InventoryManager manager;
    manager.addItem("HP Potion");
    manager.addItem("Sword of Light");

    manager.saveToFile("savegame.dat");
    return 0;
}

4. 알고리즘 특강

  • 시간, 공간 복잡도
  • 자료구조(배열, 링크드리스트, 스택, 큐)

5. 내일 계획 : 4번 과제

+ Recent posts