Tellan Skrevet 15. oktober 2008 Del Skrevet 15. oktober 2008 Eg har ein klasse trikant som arver frå figur som arver frå koordinatar. Koordinatar har private: int koordinatar[antal_dimensjonar-1] Trikant har private: Koordinatar sider[2], antal_dimensjonar er 2. Her er kodesnutt frå "trikant.cpp" void Trikant::set_sider() { int p[antal_dimensjonar-1]; for (int i=0; i<3; i++) { for(int j=0; j<antal_dimensjonar; j++) { cout << "Kva er koordinatane til x" << j << endl; cin >> p[j]; } cout << "Set koordinatane til side " << i << " til " << p[0] << " " << p[1] << endl; sider.set_koordinatar(p); sider.syn(); } } Her er kodesnutten i "Koordinatar.h" void Koordinatar::set_koordinatar(const int p[]) { for(int i=0; i<antal_dimensjonar;i++) punkt=p; } her er kodesnutten i "Koordinatar.h" void Koordinatar::syn() { for(int i=0; i<antal_dimensjonar; i++) {cout << i << "dim" << endl; cout << punkt << " "; cout << endl; } } void Trikant::syn() { cout << "Koordinatane er " << endl; for(int i=0; i<3; i++) sider.syn(); } Problemet i denne koden er at den skriv ut korrekte koordinatar i void Trikant::set_sider(), altså sider.syn() skriv ut korrekte verdiar. Men når eg kjem til void Trikant::syn() så får eg feilmelding frå windows og må avslutta programmet, det skjer før programmet skriv ut verdien for den første koordinaten. I main programmet mitt har gjer eg ikkje anna enn dette: Trikant x1; x1.set_sider(); x1.syn(); kan nokon hjelpa meg med dette problemet, eller har eg ikkje gitt ut nok informasjon? Lenke til kommentar
GeirGrusom Skrevet 15. oktober 2008 Del Skrevet 15. oktober 2008 Jeg har en liten mistanke om hva du har gjort galt. Kan det tenkes at du har definert dem akkurat slik du sier? for i såfall så kan ikke arrays som defineres på den måten være av variabel lengde Du må lage int* koordinater = new int[2]; for eksempel, eller bruke templates. template<int antall_dimensjoner> class Koordinater { private: int koordinater[antall_dimensjoner]; } Men jeg ville heller gått for å bruke new på dem, det gir bedre fleksibilitet. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå