#ifndef MALL_PRODUCT_HPP #define MALL_PRODUCT_HPP #include #include /** * @brief 商品类,表示商城中的一件商品。 */ class Product { public: /** * @brief 默认构造函数,构造一个空商品。 */ Product() = default; /** * @brief 构造商品。 * @param id 商品唯一编号 * @param name 商品名称 * @param price 商品单价(元) * @param stock 库存数量 */ Product(uint64_t id, std::string name, double price, int stock); /** @brief 获取商品编号 */ uint64_t getId() const noexcept { return id_; } /** @brief 获取商品名称 */ const std::string& getName() const noexcept { return name_; } /** @brief 获取商品单价 */ double getPrice() const noexcept { return price_; } /** @brief 获取库存数量 */ int getStock() const noexcept { return stock_; } /** * @brief 减少库存。 * @param quantity 减少数量 * @return true 扣减成功,false 库存不足 */ bool reduceStock(int quantity); /** * @brief 增加库存。 * @param quantity 增加数量 */ void addStock(int quantity); /** * @brief 返回商品简要信息字符串。 * @return 例如 "[#1001] 苹果 ¥5.50 (库存:20)" */ std::string toString() const; private: uint64_t id_ = 0; ///< 商品编号 std::string name_; ///< 商品名称 double price_ = 0.0; ///< 单价 int stock_ = 0; ///< 库存数量 }; #endif // MALL_PRODUCT_HPP