- gban: Ingyen kellene, de tegnapra
- sziku69: Szólánc.
- votlage71: Kábel menedzsment
- sziku69: Fűzzük össze a szavakat :)
- Kempingezés és sátrazás
- Elektromos rásegítésű kerékpárok
- GoodSpeed: AMD Ryzen 9 9900X (100-100000662WOF)+ Samsung 990 PRO 2TB MZ-V9P2T0BW
- Luck Dragon: Asszociációs játék. :)
- laskr99: Processzor és videokártya szilícium mag fotók újratöltve!
- LordAthis: Ismét egy "Idióta" A.I. Projekt, hogy meglovagolja az aktuális trendeket...
Hirdetés
-
LOGOUT
Új hozzászólás Aktív témák
-
válasz
bandi0000 #10758 üzenetére
"double a,b; // ez a rész mit csinálni?"
Definiálja az osztály két tagváltozóját.
"mármint ha meghívom ezt az osztályt, akkor nem ezt a részét hívom meg nem? hanem ezt:
Teglalap(double a, double b)"Igen, mivel azok változók és nem függvények, ezért nem fogod tudni meghívni őket
Ez a Teglalap() függvény egy speciális metódus (ez onnan látszik, hogy egyrészt úgy hívják, mint magát az osztályt, másrészt meg nincs visszatérési típusa), a konstruktor, ennek a feladata az, hogy az osztály létrehozásakor inicializálja annak a belső állapotát (adjon valami értéket a tagváltozóknak, ilyesmi)."this->"mutatóval" melyikre mutatok?"
A this nem "mutató", hanem mutató, tényleg, egy teljesen közönséges mutató, az egyetlen dolog, ami speciális benne, hogy nem a program ad neki értéket.
És hogy mire mutat?
Ugye az osztályok adatokból és az azokat kezelő függvényekből állnak. Egy kicsit képzeld el, hogy ez hogyan működhetett C-ben:
struct Teglalap
{
double a;
double b;
}
double terulet(struct Teglalap *t)
{
return t->a * t->b;
}
double kerulet(struct Teglalap *t)
{
return 2*t->a + 2*t->b;
}Namármost (egyszerűsítő mese
egy idő után felmerült, hogy tökre macera ez az állandó pointerpasszolgatás és milyen jó lenne, ha ezt inkább a fordító intézné, ebből lett az osztály, ami tulajdonképpen így is kinézhetne:
class Teglalap
{
double a;
double b;
double terulet(class Teglalap *this)
{
return this->a * this->b;
}
double kerulet(class Teglalap *this)
{
return 2*this->a + 2*this->b;
}
}De nem így néz ki, mert tök felesleges lenne mindig odaírni a this-t, ezért inkább így néz ki, a this-eket meg majd "odagondolja" a fordító:
class Teglalap
{
double a;
double b;
double terulet()
{
return a * b;
}
double kerulet()
{
return 2*a + 2*b;
}
}Na, és akkor mire mutat a this? Az osztály egy konkrét példányának (egy objektumnak) az adatterületére, ott, ahol annak a konkrét objektumnak az adatai (esetünkben a két double változó) meg a virtuális függvényeinek a címei vannak (jelen esetben ilyen nincs).
Új hozzászólás Aktív témák
Hirdetés
● olvasd el a téma összefoglalót!
- Honor Magic V5 - méret a kamera mögött
- Fejhallgató erősítő és DAC topik
- Építő/felújító topik
- Gyúrósok ide!
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- Béta iOS-t használók topikja
- Google Pixel topik
- Sweet.tv - internetes TV
- NOTEBOOK / NETBOOK / Mac beárazás
- NVIDIA GeForce RTX 4060 / 4070 S/Ti/TiS (AD104/103)
- További aktív témák...
- AM5 Gamer PC - Ryzen 5 8400F / RX 9060 XT / A620M / 16GB vagy 32GB RAM 5600MHz / 256GB M.2 + 1TB M.2
- GF63 Thin 11UD 15.6" FHD IPS i5-11400H RTX 3050Ti 16GB 512GB NVMe + 1TB HDD magyar vbill gar
- Mamiya RB67, az eredeti kiadas + Mamiya - Sekor objektiv
- Samsung Galaxy S21 Ultra / 12GB RAM 256GB / Gyárifüggetlen / 12Hó Garancia
- Samsung Galaxy Tab S6 Lite / 4GB RAM 64GB / Független / 12 Hó Garancia
- AZONNALI SZÁLLÍTÁS Eredeti Microsoft Office 2019 Professional Plus
- LG 27GN800P - 27" IPS - 2560x1440 - 144 hz 1ms - NVIDIA G-Sync - AMD FreeSync - HDR 10
- Gamer PC - Számítógép! Csere-Beszámítás! I7 6700 / 32GB DDR4 / RTX 2060 / 256SSD+500GB HDD
- Lenovo Thinkcentre M920t Tower/ M720s SFF / i5-8-9. gen/ WIN10-11/számla, garancia
- Telefon felvásárlás!! iPhone 11/iPhone 11 Pro/iPhone 11 Pro Max
Állásajánlatok
Cég: FOTC
Város: Budapest