Итак, у меня был вопрос о отзывах моих профессоров по одной из программ, которые мы сделали. Я не совсем понял ее отзывы о том, что она имела в виду, поставив функции сеттеров во втором конструкторе. Вот что она сказала:Множество конструкторов классов C++
В следующий раз не забудьте сделать чтение и подготовку, назначенные перед попыткой лаборатории. Внимательно прочитайте задание.
Проблема заключается в том, что перегруженный конструктор (конструктор № 2) должен вызывать функции сеттера.
Перегруженный конструктор (конструктор № 2) не был протестирован. Создайте объект с перегруженным конструктором, например: Item itemTwo (666,3, .99);
Хороший класс, хорошая основная программа и стиль кодирования.
Это была проблема:
И, наконец, вот мой код:
#include <iostream>
#include <iomanip>
using namespace std;
class Inventory
{
\t private:
\t \t int itemNumber; \t \t \t //Private Class Members
\t \t int quanity;
\t \t double cost;
\t public:
\t \t Inventory(); \t \t \t //Public Member Functions
\t \t Inventory(int i, int q, double c);
\t \t void setItemNumber(int);
\t \t void setQuanity(int);
\t \t void setCost(double);
\t \t int getItemNumber() const;
\t \t int getQuanity() const;
\t \t double getCost() const;
\t \t double getTotalCost() const;
};
int main()
{
\t int itemNum;
\t int qty;
\t double price; \t
\t Inventory itemOne; \t \t \t //Declares itemOne and itemTwo being an Inventory class objects
\t Inventory itemTwo;
\t
/****************************************************************************/
\t
\t cout << "Please Enter Data For Item One\n"; \t \t \t \t \t //Data entry for Item One
\t cout << "Enter item number: ";
\t cin >> itemNum;
\t \t
\t while (itemNum < 0) \t \t \t \t \t \t \t \t \t \t \t //Safegaurds for data
\t {
\t \t cout << "Please enter a non-negative item number: ";
\t \t cin >> itemNum; \t \t
\t }
\t
\t cout << "Enter quanity: ";
\t cin >> qty;
\t
\t while (qty < 0)
\t {
\t \t cout << "Please enter a non-negative quanity number: ";
\t \t cin >> qty;
\t }
\t
\t cout << "Enter price: ";
\t cin >> price;
\t
\t while (price < 0)
\t {
\t \t cout << "Please enter a non-negative price: ";
\t \t cin >> price;
\t }
\t \t
\t itemOne.setItemNumber(itemNum); \t \t \t //Passes All Data To Correct Functions
\t itemOne.setQuanity(qty);
\t itemOne.setCost(price); \t
\t cout << endl; \t \t \t \t \t \t \t \t \t \t //Formatting
\t
/****************************************************************************/ \t
\t cout << "Please Enter Data For Item Two\n"; \t \t \t \t //Data Entry for Item Two
\t cout << "Enter item number: ";
\t cin >> itemNum;
\t \t
\t while (itemNum < 0)
\t {
\t \t cout << "Please enter a non-negative item number: ";
\t \t cin >> itemNum; \t \t
\t }
\t
\t cout << "Enter quanity: ";
\t cin >> qty;
\t
\t while (qty < 0)
\t {
\t \t cout << "Please enter a non-negative quanity number: ";
\t \t cin >> qty;
\t }
\t
\t cout << "Enter price: ";
\t cin >> price;
\t
\t while (price < 0)
\t {
\t \t cout << "Please enter a non-negative price: ";
\t \t cin >> price;
\t }
\t
\t itemTwo.setItemNumber(itemNum); \t \t \t //Passes All Data To Correct Functions
\t itemTwo.setQuanity(qty);
\t itemTwo.setCost(price);
\t cout << endl; \t \t \t \t \t \t \t \t \t \t //Formatting
\t
/****************************************************************************/ \t
\t
\t cout << fixed << showpoint << setprecision(2);
\t //All input displayed here
\t cout << "Here's the data you entered for item one:\n";
\t cout << "Item Number: " << " \t \t " << itemOne.getItemNumber() << endl;
\t cout << "Item Quanity: " << " \t \t " << itemOne.getQuanity() << endl;
\t cout << "Item Cost: " << " \t \t " << "$" << itemOne.getCost() << endl;
\t cout << "Item Total Cost: " << " \t " <<"$" << itemOne.getTotalCost() << endl << endl;
\t
\t cout << "Here's the data you entered for item two:\n";
\t cout << "Item Number: " << " \t \t " << itemTwo.getItemNumber() << endl;
\t cout << "Item Quanity: " << " \t \t " << itemTwo.getQuanity() << endl;
\t cout << "Item Cost: " << " \t \t " << "$" << itemTwo.getCost() << endl;
\t cout << "Item Total Cost: " << " \t " <<"$" << itemTwo.getTotalCost() << endl;
\t
\t return 0;
}
Inventory::Inventory() \t \t \t \t \t \t \t //Default Constructor
{
\t itemNumber = 0;
\t quanity = 0;
\t cost = 0;
}
Inventory::Inventory(int i, int q, double c) \t //Constructor #2
{
\t itemNumber = i;
\t quanity = q;
\t cost = c;
}
void Inventory::setItemNumber(int i) \t \t \t //Re-Evaluates For a Negative Number and
{ \t \t \t \t \t \t \t \t \t \t \t \t //Passes User's Entered Data to the Private class
\t if (i >= 0)
\t \t itemNumber = i;
\t else
\t \t itemNumber = 0;
}
void Inventory::setQuanity(int q) \t \t \t \t //Re-Evaluates For a Negative Number and
{ \t \t \t \t \t \t \t \t \t \t \t \t //Passes User's Entered Data to the Private class
\t if (q >= 0)
\t \t quanity = q;
\t else
\t \t quanity = 0;
}
void Inventory::setCost(double c) \t \t \t \t ////Re-Evaluates For a Negative Number and
{ \t \t \t \t \t \t \t \t \t \t \t \t //Passes User's Entered Data to the Private class
\t if (c >= 0)
\t \t cost = c;
\t else
\t \t cost = 0;
}
int Inventory::getItemNumber() const \t \t \t //All 'Getter' Functions to Display Object's Data
{ \t \t \t \t \t \t \t \t \t \t \t \t //Whilst Keeping Data Integrity With 'const'
\t return itemNumber;
}
int Inventory::getQuanity() const
{
\t return quanity;
}
double Inventory::getCost() const
{
\t return cost;
}
double Inventory::getTotalCost() const \t \t \t //Calculates Total Cost and Returns
{
\t return cost * quanity;
}
/*
-----------------------------------------------------
Please Enter Data For Item One
Enter item number: 1303
Enter quanity: 10
Enter price: 2.50
Please Enter Data For Item Two
Enter item number: 5676
Enter quanity: 54
Enter price: 5.65
Here's the data you entered for item one:
Item Number: 1303
Item Quanity: 10
Item Cost: $2.50
Item Total Cost: $25.00
Here's the data you entered for item two:
Item Number: 5676
Item Quanity: 54
Item Cost: $5.65
Item Total Cost: $305.10
-----------------------------------------------------
Please Enter Data For Item One
Enter item number: 7456
Enter quanity: 10
Enter price: 10.9
Please Enter Data For Item Two
Enter item number: 0293
Enter quanity: 5
Enter price: 109.23
Here's the data you entered for item one:
Item Number: 7456
Item Quanity: 10
Item Cost: $10.90
Item Total Cost: $109.00
Here's the data you entered for item two:
Item Number: 293
Item Quanity: 5
Item Cost: $109.23
Item Total Cost: $546.15
-----------------------------------------------------
*/
_ «В следующий раз обязательно проделайте чтение и подготовку перед тем, как попытаться провести лабораторную работу. Прочтите внимательно ассигмент« Ну, это довольно ясно. –
._. не говоря о том, что .. –