Hej! >Det jag inte förstår är "this pointerns" olika användningsområden.Hur används this pointer (->) m.m?
Kör en självlärningskurs i c++ och börjar förstå mycket , känns skönt i jämförelse när man först såg språket om man säger så :D
Det jag inte förstår är "this pointerns" olika användningsområden.
Hur används denna (förutom för att peka på en "member" i den lokala klassen)?
Förstår heller inte varför man ska använda en "memberlist" i klasserna t.ex.
void namn::namn(): _name(0) osv?
Vad är syftet?
Tillsist undrar jag om någon har någon bra sida där man kan lära sig Windowsprogrammering , jag kan skapa ett fönster men inte mycket mer ;)
Tacksam för svar!
/MVH MagnusSv: Hur används this pointer (->) m.m?
>Hur används denna (förutom för att peka på en "member" i den lokala klassen)?
Man behöver inte använda this för att peka ut medlemmer i den lokala klassen. Det är dock tillåtet och kan vara bra om man vill förtydliga att det är en medlem och inte en lokal eller global variabel.
Övriga användningsområden som jag kommer på just nu är:
1. Ibland vill man att medlemsfunktioner returnerar den lokala klassen. Det är praktiskt eftersom man då kan koppla ihop medlemsfunktionerna utan att ange varibeln varje gång.
dvs: skriva
var.medlem1().medlem2()
istället för
var.medlem1();
var.medlem2();
Det används främst vid överlagring av operatorer.
2. En medlemsfunktion skall anropa en extern funktion som tar klassen som argument.
>Förstår heller inte varför man ska använda en "memberlist" i klasserna t.ex.
>void namn::namn(): _name(0) osv?
>Vad är syftet?
Det skall inta vara "void" på den raden.
En memberlist är till för att initiera medlemsvariabler.
I många fall är:
namn() : _name(0) { }
samma sak som
namn() { _name = 0; }
men inte alltid. t.ex. om _name är en konstant eller en referens.
<code=c++>
class exempel {
const int x;
int& y;
public:
exempel() : x(0), y(x) { } // Ok
exempel() { // error: y är inte initierad till något
x = 0; // error: x är en konstant som inte får ändras
}
};
</code>