handdator

Visa fullständig version : "class" i c++


Windstalker
2007-01-02, 21:28
Är det någon som kan förklara det här med "class" i c++. Länkar fungerar, men att förklara det med egna ord är ännu bättre. Ju utförligare desto bättre! *drool*

Tack på förhand

/Wind

HerrArne
2007-01-02, 21:40
Vad har du för grund att stå på? Några kunskaper om objektorienterad programmering? Övriga programmeringskunskaper?

Meridian
2007-01-02, 21:44
Rent konkret är en klass en samling relaterade funktioner och variabler. En klass definierar en typ av objekt (t ex en bil). Ett objekt har egenskaper (funktioner, t ex starta motorn, sväng, stanna etc...) och olika attribut (variabler, t ex hästkrafter, längd, modell osv...).

Mer info: http://en.wikipedia.org/wiki/Class_%28computer_science%29

Edit: stavfel...

Windstalker
2007-01-02, 22:02
Vad har du för grund att stå på? Några kunskaper om objektorienterad programmering? Övriga programmeringskunskaper?


Har läst C i ca 1,5 termin och c++ i 1 termin. Har väl kanske inte några rejäla grunder, men lite kan jag.

/Wind

Windstalker
2007-01-02, 22:11
Rent konkret är en klass en samling relaterade funktioner och variabler. En klass definierar en typ av objekt (t ex en bil). Ett objekt har egenskaper (funktioner, t ex starta motorn, sväng, stanna etc...) och olika attribut (variabler, t ex hästkrafter, längd, modell osv...).

Mer info: http://en.wikipedia.org/wiki/Class_%28computer_science%29

Edit: stavfel...

Okej, så klass är typ som float, int, char osv ? Egenskaperna är vad den gör, exempel int som bara skriver ut heltal? attribut är vad man döper den till? exempel int tal1?
Eller är jag helt bakom flötet? :p

/Wind

jwzrd
2007-01-02, 22:33
Okej, så klass är typ som float, int, char osv ? Egenskaperna är vad den gör, exempel int som bara skriver ut heltal? attribut är vad man döper den till? exempel int tal1?
Eller är jag helt bakom flötet? :p

/Wind

Förvisso är int, float etc klasser, men de GÖR just inget annat än lagrar värden på ett mycket specifikt sätt samt överlagrar aritmetik-operatorerna så att du t ex kan addera två int:ar. "Skriver ut" gör du t ex med <<-operatorn på cout.

Ärligt talat undrar jag vad du gjort i 2.5 terminer om du inte kommit längre. Har du struntat i allt?

class i C++ är med 2 undantag indentiskt med struct i C. Det som skiljer är att class har runtime type information (vilket förvisso kan ändras) samt att default-access i struct är public; i class är det private (eller protected? C++-kunskaperna är något rostiga).

I C har du exempelvis FILE-pekaren för att jobba med filer. Du har funktionerna fopen, fprintf, fclose etc. Du jobbar med dem genom att hela tiden ge FILE-pekaren som första argument, helt enkelt för att indikera just VILKET objekt du jobbar på. I C++-världen gör du istället så att du anropar funktionen PÅ objektet.

C:
fprintf(the_file, "foo%d", 10);

C++:
the_file->printf("foo%d", 10);

Nu finns inte just printf() på det viset, men för att ge dig något att relatera till så är det det näst mest grundläggande i objekt-orienterad programmering.

Class är just mallen/typen/strukturen/beskrivningen av ett eller flera objekt/instanser/saker/manicker som är av samma slag/sort. (Många synonymer för att ge dig fler ledtrådar att hänga upp informationen på).

bedlam
2007-01-03, 20:13
Meridians post och länk förklarade det så bra som det går utan att skriva en bok i ämnet. :)

Turrican
2007-01-03, 23:20
Har läst C i ca 1,5 termin och c++ i 1 termin. Har väl kanske inte några rejäla grunder, men lite kan jag.

/Wind

wtf? Vad en klass är måste väl vara det absolut mest grundläggande, och det absolut första man lär sig om man läser C++, det är riktigt illa att du ställer en sån fråga efter så lång tids pluggande i ämnet. Programmering kanske inte är rätt ämne för dig? ;)