---
title: "Struct vs class"
type: "forum-thread"
url: "https://www.webforum.nu/amne/c-cpp/41854-struct-vs-class"
topic: "C/C++"
topic_url: "https://www.webforum.nu/amne/c-cpp"
author: "Alpha II"
published: "2002-04-16T20:48:23.000Z"
updated: "2002-04-17T08:00:01.000Z"
replies: 15
views: 988
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/c-cpp/41854-struct-vs-class"
---

# Struct vs class

## #1 — Alpha II, 2002-04-16T20:48Z

Är struct och class samma sak? isf varför använder man struct?

Permalänk: https://www.webforum.nu/p/41854

## #2 — SPiN, 2002-04-16T20:51Z

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.

Permalänk: https://www.webforum.nu/p/647645

## #3 — PeW, 2002-04-16T20:51Z

> 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.

Permalänk: https://www.webforum.nu/p/647646

## #4 — Alpha II, 2002-04-16T20:53Z

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

Permalänk: https://www.webforum.nu/p/647648

## #5 — PeW, 2002-04-16T20:55Z

> 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

Permalänk: https://www.webforum.nu/p/647653

## #6 — SPiN, 2002-04-16T20:56Z

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?

Permalänk: https://www.webforum.nu/p/647655

## #7 — PeW, 2002-04-16T20:58Z

> 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)

Permalänk: https://www.webforum.nu/p/647656

## #8 — SPiN, 2002-04-16T20:58Z

> 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. :)

Permalänk: https://www.webforum.nu/p/647657

## #9 — PeW, 2002-04-16T20:59Z

Jovisst. Men på ett objektorienterat vis  :)

Det är inte så stor skillnad på Java och C++ när det gäller OOP  ;)

Permalänk: https://www.webforum.nu/p/647660

## #10 — SPiN, 2002-04-16T21:00Z

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? ;)

Permalänk: https://www.webforum.nu/p/647663

## #11 — PeW, 2002-04-16T21:02Z

OK  :birp

Permalänk: https://www.webforum.nu/p/647667

## #12 — PeW, 2002-04-16T21:04Z

Fast en struct är statisk....  en klass är sju tusan så mycket mer användbar  ;)

Permalänk: https://www.webforum.nu/p/647672

## #13 — SPiN, 2002-04-16T21:06Z

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

Permalänk: https://www.webforum.nu/p/647677

## #14 — PeW, 2002-04-16T21:08Z

...  ;)  
Jag gillade bara inte att man la klasser i samma stack som structar  :e

Permalänk: https://www.webforum.nu/p/647678

## #15 — Swey, 2002-04-17T01:02Z

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.

Permalänk: https://www.webforum.nu/p/647756

## #16 — PeW, 2002-04-17T08:00Z

... 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.

Permalänk: https://www.webforum.nu/p/647832

---

Tråden på webben: https://www.webforum.nu/amne/c-cpp/41854-struct-vs-class
