Har fastnat totalt och irrat in mig i stora bärskogen med en uppgift.
Min körning fungerar bra men när man avslutar får man programfel.
Saknar en en överlagrad tilldelningsoperator för PersonLista men får inte rätt på det (rad 195)
Vet att jag behöver det men saknar sista pricken över i:et, eller just nu har jag inget i ens
Min körning fungerar bra men när man avslutar får man programfel.
Saknar en en överlagrad tilldelningsoperator för PersonLista men får inte rätt på det (rad 195)
Vet att jag behöver det men saknar sista pricken över i:et, eller just nu har jag inget i ens

Kod:
#include <iostream> #include <string> #include <fstream> #include <iomanip> using namespace std; //Globala const int MAX_KOMPISAR = 10; const int MAX_TRANSAKTIONER = 30; const int MAX_PERSONER = 10; class Person { private: string namn; int betalat_andras; int skyldig; public: Person (); Person (string n, double b, double s); double haemta_betalat (); double haemta_skyldig (); string haemta_namn (); void skrivUt (); }; class PersonLista { private: int antal_personer; Person *pers; public: PersonLista (); ~PersonLista (); PersonLista (const PersonLista & p); void laggTillEn (Person pny); void skrivUtOchFixa (); double summaSkyldig (); double summaBetalat (); bool finnsNamn (string namnet); }; class Transaktion { private: string datum; string typ; string namn; double belopp; int ant_vanner; string *vanner; public: Transaktion (); ~Transaktion (); Transaktion & operator = (const Transaktion & tn); string haemta_namn (); double haemta_belopp (); int haemta_ant_vanner (); double haemta_skyldig (string namnet); bool finnsVan (string namnet); bool laesEnTrans (istream & is); void skrivEnTrans (ostream & os); }; class TransaktionsLista { private: Transaktion * trans; Transaktion tn; int antalTrans; public: TransaktionsLista (); ~TransaktionsLista (); void laesin (istream & is); void skrivut (ostream & os); void laggTill (Transaktion & tn); double totalkostnad (); double harLagtUt (string namnet); double aerSkyldig (string namnet); PersonLista FixaPersoner (); }; void Meny (TransaktionsLista & translista, PersonLista & perslista); void visaMeny (); int Val (); //Huvudprogram int main () { TransaktionsLista translista; PersonLista perslista; ifstream infil ("resa.txt"); translista.laesin (infil); infil.close (); Meny (translista, perslista); return 0; } void Meny (TransaktionsLista & translista, PersonLista & perslista) { Transaktion tn; Person pers; int antal = 0; string namnet; int val = -1; ifstream infil ("resa.txt"); ofstream utfil ("resa.txt", ios_base::app); while (val != 0) { visaMeny (); val = Val (); switch (val) { case 0: cout << "\nProgrammet avslutas. Tillagda transaktioner sparas." << endl; translista.skrivut (utfil); utfil.close (); break; case 1: tn.laesEnTrans (cin); translista.laggTill (tn); break; case 2: cout << "\nAntal trans = " << antal << endl; translista.skrivut (cout); cout << endl; break; case 3: cout << "\nAktivitetens totalkostnad: " << translista. totalkostnad () << " kr." << endl << endl; break; case 4: cout << "Ange namn: "; cin >> namnet; cout << namnet << " C$r skyldig: " << translista. aerSkyldig (namnet) << " kr." << endl << endl; break; case 5: cout << "Ange namn: "; cin >> namnet; cout << namnet << " ligger ute med: " << translista. harLagtUt (namnet) << " kr." << endl << endl; break; case 6: perslista = translista.FixaPersoner (); perslista.skrivUtOchFixa (); cout << endl; break; } } } // Funktion som skriver ut menyn void visaMeny () { cout << "-------------> V\x84lj funktion <-------------" << endl << endl; cout << "0. Avsluta. Alla transaktioner sparas p\x86 fil." << endl; cout << "1. L\x84s in en transaktion fr\x86n tangentbordet." << endl; cout << "2. Skriv ut information om alla transaktioner." << endl; cout << "3. Ber\x84kna totala kostnaden." << endl; cout << "4. Hur mycket \x84r en viss person skyldig?" << endl; cout << "5. Hur mycket ligger en viss person ute med?" << endl; cout << "6. Lista alla personer mm och FIXA!" << endl << endl; }