Avatar billede mat Nybegynder
13. december 2005 - 13:21 Der er 6 kommentarer og
1 løsning

class vs struct

Hej

Et simpelt spørgsmål (tror jeg da):

Er det tilladt at dele en struct op i en header og en cpp fil? Og defineres metoder og arv som man normalt gøres med en klasse (altså med namespace og sån)?

Eksempel; Er dette en legitim struct:

// mat_DataObject.h

struct mat_DataObject : csObject
{

    mat_DataObject(void);
    ~mat_DataObject(void);

    void SetIdentity(int i);
    int GetIdentity(void);
    int identity;
   
};

// mat_DataObject.cpp

#include "mat_DataObject.h"

mat_DataObject::mat_DataObject(void)
{
}

mat_DataObject::~mat_DataObject(void)
{
}

int mat_DataObject::GetIdentity(void)
{
    return identity;
}

void mat_DataObject::SetIdentity(int i)
{
    identity = i;
}


På forhånd tak.
mvh mat
Avatar billede arne_v Ekspert
13. december 2005 - 13:29 #1
forskellen på struct og class er meget lille i C++

(noget med default private/public)

så ja

men jeg plejer altid at lade typer med kode være classes og så bruge struct
til data only typer

så synes jeg at det er nemmere at forstå hvad noget er
Avatar billede jpk Nybegynder
13. december 2005 - 13:32 #2
I C++ er en struct det samme som en class bortset fra at members er public som default.

Altså burde det være lovligt, men jeg kan ikke se hvad det skulle gøre godt for...
Avatar billede mat Nybegynder
13. december 2005 - 13:32 #3
Ok kool, og jeg er nok tilbøjelig til at være enig med dig. Men jeg sidder med noget som ikke vil tage classes, men skal have en struct, så jeg blev nødt til at "omformulere" min datastruktur.

Men tak, smid et svar.

mvh mat
Avatar billede mat Nybegynder
13. december 2005 - 13:33 #4
Må man så også gerne instanciere med "new" når det er en struct?
Avatar billede arne_v Ekspert
13. december 2005 - 13:38 #5
ja
Avatar billede mat Nybegynder
13. december 2005 - 13:45 #6
arne > Vil du ikke have point?
Avatar billede arne_v Ekspert
13. december 2005 - 13:48 #7
jo jo
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