Piszę prosty programik pobierający od usera zamówienia i zapisujący je w tablicy na początek.
Problem polega na tym, że mogę wywołać w pętli metodę zapisz_dane(), ale nie mogę jej wyników wrzucić do tablicy.
Wygląda na to, że przeszkadza w tym typ void metody zapisz_dane(). Wydawało mi się, że jeżeli nie zwracam danych poprzez return to powinienem używać typu void.
Mogę oczywiście zmienić typ, ale skoro mam tutaj wiele różnych typów to jaki powinienem zrobić to najrozsądniej?
Poza tym jak stworzyć tablicę obiektów klasy Zamowienie?
Main
#include <Windows.h>
#include "zamowienie.h"
using namespace std;
int main()
{
int ile;
cout<<"Ile towarow chcesz zamowic? ";
cin>>ile;
int* t=new int[ile];
Zamowienie n;
for(int i=0; i<ile; i++)
{
t[i]=n.zapisz_dane();
}
system("pause");
return 0;
}
Zamowienie.h
using namespace std;
class Zamowienie
{
private:
string nazwa_produktu;
float cena_produktu;
float data_zakupu;
int liczba_sztuk;
public:
void zapisz_dane(); // tu powstaje problem
void wyswietl_dane();
string podaj_nazwe_produktu();
float podaj_cene();
float podaj_date_zakupu();
int podaj_liczbe_sztuk();
void podaj_koszt();
};
Zamowienie.cpp
#include "zamowienie.h"
using namespace std;
void Zamowienie::zapisz_dane()
{
cout<<"Podaj nazwe produktu: ";
cin>>Zamowienie::nazwa_produktu;
cout<<"Podaj cene produktu: ";
cin>>Zamowienie::cena_produktu;
cout<<"Podaj date zakupu: ";
cin>>Zamowienie::data_zakupu;
cout<<"Podaj liczbe sztuk: ";
cin>>Zamowienie::liczba_sztuk;
}
void Zamowienie::wyswietl_dane()
{
}
string Zamowienie::podaj_nazwe_produktu()
{
return nazwa_produktu;
}
float Zamowienie::podaj_cene()
{
return cena_produktu;
}
float Zamowienie::podaj_date_zakupu()
{
return data_zakupu;
}
int Zamowienie::podaj_liczbe_sztuk()
{
return liczba_sztuk;
}
void Zamowienie::podaj_koszt() // typ do zmiany
{
}