Довольно новичок в C++ здесь и программирование в целом, поэтому, пожалуйста, будьте терпеливы и понимаете, что мои объяснения могут не совпадать. Назначение для моего класса ООП вызывает следующее:C++ OOP Классы и конструкторы
Создайте класс инвентаризации, который может хранить информацию о товаре в инвентаре розничного магазина. Необходимые частные переменные-члены: - номер позиции - количество - стоимость Требуемые функции-члены
Конструктор по умолчанию - Устанавливает все переменные члены 0 Конструктор # 2 - Принимает элемента номер, количество и стоимость в качестве аргументов , Вызывает другие функции класса, чтобы скопировать эти значения в соответствующие переменные-члены.
Они, как я это делаю, несколько отличаются. Вместо 1 значения я пытаюсь инициализировать массив и хранить все значения, вводимые пользователем там. Однако кажется, что, как только пользователь выходит из функции member/class, значение удаляется из массива.
Вид на мой ум заканчивается здесь, поэтому любая информация или рекомендации очень помогут.
#include <iostream>
using namespace std;
class inventory
{
private:
int productNum[10];
int productCount[10];
double productPrice[10];
int inventoryFillLevel;
int userPNumber;
int userQuantity;
double userPrice;
public:
inventory()
{
int counter = 0;
userPNumber = 0;
userQuantity = 0;
userPrice = 0;
while (counter < 10)
{
productNum[counter] = 5;
productCount[counter] = 6;
productPrice[counter] = 7;
counter++;
}
}
inventory(int pNumber, int pCount, int pPrice)
{
cout << "Now we're in the 2nd constructor in the Class" << endl;
cout << "The 1st number entered by the user is: " << pNumber << endl;
cout << "The 2nd number entered by the user is: " << pCount << endl;
cout << "The 3rd number entered by the user is: " << pPrice << endl;
Input(pNumber);
}
void Input(int pNumber)
{
int counter = 0;
cout << "\nNow we're in the function as called by the Constructor." << endl;
cout << "The 1st number entered by the user is: " << pNumber << endl;
cout << "In the function the counter is: " << counter << endl;
cout << "The value in the array at " << counter << " is: " << productNum[counter] << endl;
cout << "Now we set that to the value entered by the user" << endl;
productNum[counter] = pNumber;
cout << "And now the value in the array is: " << productNum[counter] << endl;
}
void Show()
{
int counter = 0;
cout << "After entering the value, let's check what is stored in the array: ";
cout << productNum[counter] << endl;
}
};
int main()
{
int a=0;
int b=0;
int c=0;
inventory inv1;
cout << "1st User entered value" << endl;
cin >> a;
cout << "2nd User entered value" << endl;
cin >> b;
cout << "3rd User entered value" << endl;
cin >> c;
cout << "Now we call the 2nd constructor and pass the values to it" << endl;
inventory(a, b, c);
inv1.Show();
return 0;
}
Еще раз спасибо за помощь.
Я думал, что это происходит. Я думаю, что это сводится к моему пониманию намерений конструкторов. Я хочу, чтобы один инициализировал массив и все значения с помощью 0, а затем вызывал другого в конструктор, чтобы заполнить тот же массив данными, которые, по-видимому, не являются тем, что они делают. В этом случае их следует рассматривать как предоставление пользователю двух вариантов. Либо создать пустой объект массива, либо создать и заполнить массив? Это больше на точке? – Zardoz