Är struct och class samma sak? isf varför använder man struct?
Struct vs class
15 svar · 902 visningar · startad av Alpha II
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.
Var ligger felet........ spelar det någon roll i vilken årdening headerfilerna ligger i
1: Vart felet ligger är svårt att säga men tydligen vet den inte vad str är för något i den koden. Visa mer kod.. :)
2: Nej, det ska inte spela nån roll om du gjort dina egna headers att vara oberoende av vad som inkluderas i övrigt.
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 :x
För att uttrycka det alltför lätt, så kan man nästan säga att struct:ar är små klasser.
Ja - det var verkligen alltför lätt ;)
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 :birp
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?
om inte så är det ju inte den enda felaktiga saken i den boken
Problemet med nybörjarböcker är att de i ett pedagogiskt försök bäddar för missförstånd.
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)
En struct är en container av data och blir så en egen datatyp som innehåller andra datatyper.
Japp, men en klass blir väl också en egen datatyp? Är inte så hemma på C++, men jag chansar lite. :)
Jovisst. Men på ett objektorienterat vis :)
Det är inte så stor skillnad på Java och C++ när det gäller OOP ;)
Nej, OOP är ju alltid OOP! :bire
Men du kan väl medge att jag har lite rätt för att göra mig glad? ;)
OK :birp
Fast en struct är statisk.... en klass är sju tusan så mycket mer användbar ;)
Det var ju det jag sa tidigare!
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.
Klasser är dynamiska och objektorienterade samtidigt som struct:ar inte är det. :)
:bire
... ;)
Jag gillade bara inte att man la klasser i samma stack som structar :e
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.
... delade upp den gamla tråden...
... 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.