Implement a Product class with private attributes productID (int), price (double), and discount (double percentage).
(int id, double price) (defaulting discount to 0.0), and another taking (int id, double price, double discount).Product(const Product& other) that duplicates product state.applyDiscount() which calculates the discount and updates the price, ensuring the final price never drops below 0.getFinalPrice() const returning the current price, and display() const showing product details.main(), instantiate products using both constructors, copy a product, apply discounts, and display results before and after.[Initial p1] Product ID: 100 | Price: $50.00 | Discount: 0% [Initial p2] Product ID: 101 | Price: $100.00 | Discount: 20% [After Discount p2] Product ID: 101 | Price: $80.00 | Discount: 20% [Copied p3] Product ID: 101 | Price: $80.00 | Discount: 20% [✓] Product class & copy constructor verified (Time: 0.008s, Memory: 2.1 MB)