首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >库存系统/管理

库存系统/管理
EN

Code Review用户
提问于 2021-02-28 04:36:49
回答 1查看 596关注 0票数 0

只是想知道我的代码是什么样子,认为它是“教授的输入”,因为我不参加本学期的课程。另外,我想指出的是,这将很快过渡到一种数据库方法,在这种方法中,我使用MySQL数据库来获取InventoryItems

Inventory.h

代码语言:javascript
复制
#pragma once


#include <vector>
#include <iostream>

#include "InventoryItems.h"

class Inventory
{
public:
    Inventory();
    ~Inventory();

    void createNewInventoryItem(std::string itemName = "", unsigned int maxQuantity = 0, unsigned int orderThreshold = 0,
                                                                         double price = 0.0, int quantityInInventory = 0);
    void deleteInventoryItem(int posInVector);
    InventoryItems* getItem(int posInVector);
private:
    std::vector<InventoryItems*> m_inventory; //NOTE: does not use a smart pointer, instead the pointer is deleted from the heap in the deleteInventoryItem function
                                              //      if deleteInventoryItem is not called at the end of the inventory objects life cycle the inventory objects deconstructor will
                                              //      loop through all elements in m_inventory and call deleteInventoryItem for each item
};

Inventory.cpp

代码语言:javascript
复制
#include "Inventory.h"

Inventory::Inventory()
{
    std::cout << "Inventory created" << std::endl;
}

Inventory::~Inventory()
{
    for (int i = 0; i < m_inventory.size(); i++) {
        deleteInventoryItem(i);
    }
    std::cout << "Inventory destroyed" << std::endl;
}

void Inventory::createNewInventoryItem(std::string itemName, unsigned int maxQuantity, unsigned int orderThreshold,
                                                                             double price, int quantityInInventory)
{
    InventoryItems* newItem = new InventoryItems;
    newItem->createInventoryItem(itemName, maxQuantity, orderThreshold, price, quantityInInventory);
    m_inventory.emplace_back(newItem);
}

void Inventory::deleteInventoryItem(int posInVector)
{
    delete m_inventory.at(posInVector);
    m_inventory.erase(m_inventory.begin() + posInVector);
}

InventoryItems* Inventory::getItem(int posInVector)
{
    return m_inventory.at(posInVector);
}

清单类实际上是属于它自己的,在我合并我的数据库之前,这只是一个概念的证明(例如,inventoryItems是DB和查询的位置持有者,因此我这里不包括它)。

EN

回答 1

Code Review用户

发布于 2021-02-28 17:11:13

除了马丁详尽的回答外,还有一点是:

标头使用std::string,但不包括<string>。相反,它包括它不使用的<iostream> (并且可以移动到实现文件中)。

票数 1
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/256525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档