/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
struct og class forskel
Fra : Jesper Gødvad


Dato : 17-08-01 17:09

Hej Alle

Er det rigtigt forstået at forskellen mellem struct og class alene er
default scopet og at struct kun eksisterer i C++ for at bevare nogen grad af
kompatibilitet med C?

Hvis det er korrekt forstået kan man så udlede at man kun bør benytte en
struct i C++ hvis alle members er public (da det ellers ikke giver mening at
have begge)?

mvh. jesper



 
 
Mogens Hansen (17-08-2001)
Kommentar
Fra : Mogens Hansen


Dato : 17-08-01 19:36


"Jesper Gødvad" <Xesper@goedvad.dk> wrote in message
news:9ljfbc$8bu$1@sunsite.dk...
>
> Er det rigtigt forstået at forskellen mellem struct og class alene er
> default scopet og at struct kun eksisterer i C++ for at bevare nogen grad
af
> kompatibilitet med C?

Det er rigtigt at den _eneste_ forskel mellem struct og class er default
visibility (private for class og public for struct).
Jeg opfatter det ikke udelukkende som at det er for at bevare kompatibilitet
med C.
Det er også for at bevare opfattelsen af at en class kan være effektiv
(f.eks. ikke tvunget til at have virtuelle metoder).
Se eventuelt "The Design and Evolution of C++" (D&E), Bjarne Stroustrup,
ISBN 0-201-54330-3, side 76. Det er i øvrigt en god bog.

Der er et begreb i C++, der hedder Plain Old Data (POD), som dækker over en
structur som er kompatibel med C.

Det er iøvrigt interessant at der er en stor forskel mellem struct og class
i C#

>
> Hvis det er korrekt forstået kan man så udlede at man kun bør benytte en
> struct i C++ hvis alle members er public (da det ellers ikke giver mening
at
> have begge)?

Nej, egentlig ikke.

Venlig hilsen

Mogens Hansen



Jesper Gødvad (17-08-2001)
Kommentar
Fra : Jesper Gødvad


Dato : 17-08-01 20:53


"Mogens Hansen" <mogens_h@dk-online.dk> wrote in message
news:9ljntq$207q$1@news.cybercity.dk...

Hej Mogens - tak for svaret

> Der er et begreb i C++, der hedder Plain Old Data (POD), som dækker over
en
> structur som er kompatibel med C.
>
> Det er iøvrigt interessant at der er en stor forskel mellem struct og
class
> i C#

Hvis der er stor forskel på C# og definationerne i Standard Library bliver
C# så ikke en proporitær standard som VB? Men det er måske meningen?

mvh. jesper



Mogens Hansen (17-08-2001)
Kommentar
Fra : Mogens Hansen


Dato : 17-08-01 22:33


"Jesper Gødvad" <Xesper@goedvad.dk> wrote in message
news:9ljsfn$g3j$1@sunsite.dk...
>
> "Mogens Hansen" <mogens_h@dk-online.dk> wrote in message
> news:9ljntq$207q$1@news.cybercity.dk...
>
> >
> > Det er iøvrigt interessant at der er en stor forskel mellem struct og
> class
> > i C#
>
> Hvis der er stor forskel på C# og definationerne i Standard Library bliver
> C# så ikke en proporitær standard som VB? Men det er måske meningen?

Hvis du med Standard Library mener C++ Standard Library, så har C# absolut
_intet_ med Standard Library at gøre.
Jo, jeg kan ikke se andet end at C# er lige so proporitært som VB - det er
formodentligt meningen.
Det er et spørgsmål om at have kontrollen, og _hvem_ der har kontrollen -
ellers ville Java være tæt på præcis lige så godt.

Venlig hilsen

Mogens Hansen



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste