[C++] Lite allmäna frågor om Pekare

Permalänk

[C++] Lite allmäna frågor om Pekare

Finns det någon som helst tumregel när de ska användas? Vad är det som gör dem så bra? Vad är det för skillnad på
int i;
int* j;?

Jag sitter nämligen och håller på med en labb nu, där det är tänkt att man ska lära sig pekare, referensparametrar, klasser, ja, i princip hela C++ Direkt boken.

Än så länge behöver jag ingen hjälp då jag löst hela labben med referensparametrar, men, det känns inte som jag gjort det på rätt sätt. (även om programmet funkar till fullo)

Referensparametrar är för att skicka in värde(n) i funktioner, korrekt? Med hjälp av dessa funktioner kan du i sin tur värdesätta alla deklarationer i en class? Eller?

Permalänk
Medlem

Skillnaden är att int i, är en plats i minnet som sparar en integer, int* j, är en plats i minnet som sparar adressen till en integer.
jag brukar tänka att int* j, är en vägskylt

Du skall generellt alltid använda referens över pekare, om du kan. T.ex. slipper du ta hänsyn till att någon skickar in NULL. Ibland är det dock logiskt att kunna skicka NULL.
I C kan du dock inte skicka som referense, utan löser det med pekare.
Det finns en bra diskussion om det här: http://www.cplusplus.com/forum/beginner/3958/

Visa signatur

citera!

Permalänk
Hedersmedlem

Behovet av pekare känns nog större när det blir nödvändigt att allokera minne dynamiskt.