Gå til innhold

set privat int til ein verdi, finn ikkje verdien igjen når funksjonen er slutt


Anbefalte innlegg

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
Videoannonse
Annonse

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...