Mam problem z kolejnym ćwiczeniem z podręcznika Język C++. Szkoła Programowania Stephen'a Prata. Nie jestem pewien, czy dobrze je zrozumiałem.

Oto treść zadania:

Mając poniższą deklarację struktury:
struct customer {
char fullname[35];
double payment;
};
napisz program, który będzie dodawał struktury customer (klient) na stos i usuwał je z tego stosu: stos ma być reprezentowany klasą Stack. Za każdym razem, kiedy struktura jest usuwana ze stosu, należy dodać wartość payment (należność) do ogólnej sumy należności i wyświetlić tę sumę. Uwaga: w ramach ćwiczenia nie należy modyfikować klasy Stack - najwyżej wolno zmienić definicję synonimu typu typedef tak, aby typem Item był typ customer zamiast unsigned long.

Kod źródłowy stack.h: http://ideone.com/pV1Im
Kod źródłowy stack.cpp: http://ideone.com/r5yM2

Zrobiłem to tak, ale chyba nie o to dokładnie w tym zadaniu chodziło. Może mi to ktoś wyjaśnić?

#include <iostream>
#include "stack.h"

int main()
{
	double suma = 0;
	using namespace std;
	customer pierwszy = {"Darek", 13000};
	customer drugi = {"Franek", 287.23};
	customer trzeci = {"Janek", 199.99};
	Stack stos;
	
	cout << "Ustawiam pierwszego i drugiego\n";
	stos.push(pierwszy);
	stos.push(drugi);

	cout << "Zdejmuje:\n";
	suma += drugi.payment;
	stos.pop(drugi);
	cout << "Suma naleznosci: " << suma;
	cout << "\nZdejmuje:\n";
	suma += pierwszy.payment;
	stos.pop(pierwszy);
	cout << "Suma naleznosci: " << suma;
	cout << "\n\nUstawiam trzeciego:\n";
	stos.push(trzeci);
	cout << "Zdejmuje:\n";
	suma += trzeci.payment;
	stos.pop(trzeci);
	cout << "Suma naleznosci: " << suma;
	cout << endl;

	system("PAUSE");
	return 0;
}

(Zmieniłem też typedef w pliku stack.h, jak w poleceniu.)