![]() |
|
|
|||||||
| C/C++ Diskussioner om programmeringsspråken C och C++. |
![]() |
|
|
Trådverktyg | Visningsalternativ |
|
|
#1 |
|
Medlem
Registrerad: 2000-05-20
Ort: Hudiksvall
Inlägg: 2 579
Lösningar: 191 |
Är struct och class samma sak? isf varför använder man struct?
|
|
|
|
|
|
#2 |
|
Medlem
Registrerad: 2000-03-12
Ort: Göteborg
Inlägg: 5 832
Lösningar: 179 |
För att uttrycka det alltför lätt, så kan man nästan säga att struct:ar är små klasser. De kan lagra variabler, men är långt ifrån så dynamiska och intelligenta som klasser. De kan inte ha några metoder, inte ärva och inte bli ärvda.
__________________
"Knock off the hippie shit, strap on a helmet and start shooting. This is Malibu, baby! I want you to storm that beach like it's fuckin' Normandy!" |
|
|
|
|
|
#3 | |
|
Medlem
Registrerad: 2000-06-20
Inlägg: 6 839
Lösningar: 1124 |
Citat:
2: Nej, det ska inte spela nån roll om du gjort dina egna headers att vara oberoende av vad som inkluderas i övrigt. |
|
|
|
|
|
|
#4 |
|
Medlem
Registrerad: 2000-05-20
Ort: Hudiksvall
Inlägg: 2 579
Lösningar: 191 |
försöker lära mig c++ med en några år gammal bok, i den står det att man inte ska använda struct utan class och att det är exakt samma sak fast ett nytt namn, stämmer det? om inte så är det ju inte den enda felaktiga saken i den boken
|
|
|
|
|
|
#5 | |
|
Medlem
Registrerad: 2000-06-20
Inlägg: 6 839
Lösningar: 1124 |
Citat:
![]() En struct är en container av data och blir så en egen datatyp som innehåller andra datatyper. En klass är mycket mer flexibel och i objektorienterade sammanhang något man gömmer och kapslar in data och egenskaper i. Väldigt användbart
|
|
|
|
|
|
|
#6 |
|
Medlem
Registrerad: 2000-03-12
Ort: Göteborg
Inlägg: 5 832
Lösningar: 179 |
Nej, en klass och en struct är inte samma sak. Beroende på vad du ska använda dina klasser till, kan ibland en struct kanske vara ett bättre alternativ. T.ex. om du inte behöver använda metoder och objektorientering.
![]() Ang. Honkens fel, kan det inte vara så att du har glömt att inkludera string-headern?
__________________
"Knock off the hippie shit, strap on a helmet and start shooting. This is Malibu, baby! I want you to storm that beach like it's fuckin' Normandy!" |
|
|
|
|
|
#7 | |
|
Medlem
Registrerad: 2000-06-20
Inlägg: 6 839
Lösningar: 1124 |
Citat:
Man kan använda klasser som struktar, men tyvärr bidrar den stilen till att koden blir mer C - mässig än OOP ![]() Ska man lära sig C++ är det bättre att från början lära sig OOP och allt vad det innebär... (iaf min åsikt) |
|
|
|
|
|
|
#8 | |
|
Medlem
Registrerad: 2000-03-12
Ort: Göteborg
Inlägg: 5 832
Lösningar: 179 |
Citat:
__________________
"Knock off the hippie shit, strap on a helmet and start shooting. This is Malibu, baby! I want you to storm that beach like it's fuckin' Normandy!" |
|
|
|
|
|
|
#9 |
|
Medlem
Registrerad: 2000-06-20
Inlägg: 6 839
Lösningar: 1124 |
Jovisst. Men på ett objektorienterat vis
![]() Det är inte så stor skillnad på Java och C++ när det gäller OOP
|
|
|
|
|
|
#10 |
|
Medlem
Registrerad: 2000-03-12
Ort: Göteborg
Inlägg: 5 832
Lösningar: 179 |
Nej, OOP är ju alltid OOP!
![]() Men du kan väl medge att jag har lite rätt för att göra mig glad?
__________________
"Knock off the hippie shit, strap on a helmet and start shooting. This is Malibu, baby! I want you to storm that beach like it's fuckin' Normandy!" |
|
|
|
|
|
#11 |
|
Medlem
Registrerad: 2000-06-20
Inlägg: 6 839
Lösningar: 1124 |
OK
|
|
|
|
|
|
#12 |
|
Medlem
Registrerad: 2000-06-20
Inlägg: 6 839
Lösningar: 1124 |
Fast en struct är statisk.... en klass är sju tusan så mycket mer användbar
|
|
|
|
|
|
#13 | |
|
Medlem
Registrerad: 2000-03-12
Ort: Göteborg
Inlägg: 5 832
Lösningar: 179 |
Det var ju det jag sa tidigare!
Citat:
![]()
__________________
"Knock off the hippie shit, strap on a helmet and start shooting. This is Malibu, baby! I want you to storm that beach like it's fuckin' Normandy!" |
|
|
|
|
|
|
#14 |
|
Medlem
Registrerad: 2000-06-20
Inlägg: 6 839
Lösningar: 1124 |
...
Jag gillade bara inte att man la klasser i samma stack som structar
|
|
|
|
|
|
#15 |
|
Medlem
Registrerad: 2000-04-06
Ort: Stockholm
Inlägg: 2 000
Lösningar: 1535 |
struct vs. class
En struktur har olika egenskaper i C och i C++.
I C finns det inga klasser. Där är en struktur endast ett antal variabler som kan manipuleras direkt utanför strukturen. I C++ däremot, är en struktur samma sak som en klass med ett par undantag. Bl.a.: En klass har standard-skyddet private; Strukturens standard-skydd är public. Du kan fortfarande ändra skydd på samma sätt som i en klass; En struktur kan initieras direkt, till skillnad mot en klass som måste ha en konstruktör. Exempel: struct {int d;} s = {10}; // OK class {int d;} c = {10}; // Fel Det finns säkert fler skillnader, men detta är de viktigaste. En struktur är att föredra för enkla datasamlingar som kan initieras utan kod. Måste kod köras vid initiering är en klass ett bättre alternativ. Med reservation för att jag missuppfattat det hela.
__________________
- Marcus |
|
|
|
|
|
#16 |
|
Medlem
Registrerad: 2000-06-20
Inlägg: 6 839
Lösningar: 1124 |
... så att struct-diskussionen hamnade här ist
![]() Den viktigaste skillnaden är att klasser byggs med egna egenskaper (metoder) som då ingår i den datatypen (objektstypen) och att till gömma data / internt beteende. Det ska inte behöva vara av exakt intresse hur en klass är uppbyggd för den som implementerar denna i sin miljö. En blomma är alltid en blomma och en bil är alltid en bil och de ska bara kunna användas på ett visst sätt. Klasser är dynamiska efter dess egenskaper, en struct är bara en komplexare variant av primitiv datatyp. Sen kan man använda sig av en klass för att lagra data som i en struct. |
|
|
|
![]() |
| Trådverktyg | |
| Visningsalternativ | |
|
|