Avatar billede nielsenmathias Nybegynder
25. oktober 2004 - 14:36 Der er 5 kommentarer og
2 løsninger

Returnering af private data member (array)

Hejsa.
Har et objekt der skal indeholde noget data. data f.eks. i et array som char myData[128].
hvordan får jeg fat i data i arrayet igen fra et andet scope (main f.eks., hvis jeg vil teste på det der stå i det?
Avatar billede jpk Nybegynder
25. oktober 2004 - 14:40 #1
Lav fx en public metode:

const char* GetData() { return myData};
Avatar billede plx Nybegynder
25. oktober 2004 - 14:41 #2
Du lægger arrayet i public-delen af klassen

class a{
public:
myData[128]
};
Avatar billede nielsenmathias Nybegynder
25. oktober 2004 - 15:16 #3
hehe ok, et himmelråbende dumt spørgsmål....hmm ! :)
jeg fik bare en segmentation fault, men det var ikke der problemet lå.
tak og tillykke med de billige point :D mandage, de burde afskaffes
Avatar billede nielsenmathias Nybegynder
25. oktober 2004 - 15:17 #4
hvis i vil ha dem altså?
Avatar billede jpk Nybegynder
25. oktober 2004 - 15:57 #5
tjo, hvorfor ikke...
Avatar billede noden Nybegynder
28. oktober 2004 - 14:46 #6
Er det på linux?
Du forsøger formegentlig at skrive mere data i dit array end der er reserveret eller i hvert fald behandler dine data forkert.

Hvis du ligger dine data i public, er der ikke noget formål med at bruge det.

class obj
  {
  private:
      char myData[128];
  public:
      char * getdata();
    }

Så har du dine data som private og en funktion som har lov at læse dem.
Du skal så lave funktionen:

char * obj::getdata()
  {
  return myData;
  }

myData er allerede en pointer til første element i dit array.
Avatar billede noden Nybegynder
28. oktober 2004 - 14:49 #7
Den eneste praktiske forskel på class og struct er at class som default er privat og struct som er public.
Der er så en uskreven regel om at man bruger structs hvis objektet kun indeholder data og class hvis objektet også indeholder funktioner.

Men som tidligere nævnt, der er ikke nogen grund til at bruge class hvis du kun bruger public!

Hehe, så skal vi se om jeg har startet en religionskrig!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester