- Amlogic S905, S912 processzoros készülékek
- Milyen billentyűzetet vegyek?
- Sugárkövetés nélküli sugárkövetés felé menetel az új PlayStation
- Házimozi belépő szinten
- VR topik (Oculus Rift, stb.)
- TCL LCD és LED TV-k
- Soundbar, soundplate, hangprojektor
- Androidos tablet topic
- Nvidia GPU-k jövője - amit tudni vélünk
- Milyen videókártyát?
-
PROHARDVER!
Ú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
● olvasd el a téma összefoglalót!
- Sima Vs.Windows Logitech Mx keys s plus és hagyományos Mx keys magyar bemutatása. Új videó linkel
- BESZÁMÍTÁS! ASUS A620M R5 7500F 32GB DDR5 1TB SSD RTX 4070 SUPER 12GB Zalman M4 Corsair 650W
- Telefon felvásárlás!! Samsung Galaxy S24/Samsung Galaxy S24+/Samsung Galaxy S24 Ultra
- BESZÁMÍTÁS! Apple MacBook Pro 16 M4 Max 36GB RAM 1TB SSD macbook garanciával hibátlan működéssel
- Dell Precision 5540 i7-9850H 16GB 256GB 15.6" FHD Nvidia Quadro T1000 15.6" FHD 1 év garancia
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest
Cég: FOTC
Város: Budapest