- Vodafone mobilszolgáltatások
- Motorola Moto G54 5G Power Edition - nem merül le
- Xiaomi 13T és 13T Pro - nincs tétlenkedés
- Elcsípte a Huawei kameratelefonja az első helyet
- Redmi Note 13 Pro 5G - nem százas, kétszázas!
- Huawei Watch Fit 3 - zöldalma
- Fotók, videók mobillal
- Xiaomi 13 Pro - szerencsés szám
- Drágábban indíthat az új iPhone SE
- DIGI Mobil
Hirdetés
-
Sarokba szorította a Huawei az Apple-t Kínában
it A Huawei olyan nagy versenyt teremtett az Apple számára Kínában, hogy utóbbi érezhetően csökkentette az országban az iPhone-ok árait.
-
Drágábban indíthat az új iPhone SE
ma 2025 tavaszán érkezhet az új SE, az Apple az 500 dolláros határig emelhet valamennyit az áron.
-
MultiVersus - Íme a launch trailer
gp Az érdeklődőknek alig egy hetet kell már csak várniuk a teljes kiadás megjelenésére.
-
Mobilarena
Új hozzászólás Aktív témák
-
dabadab
titán
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).
DRM is theft
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- -70% HP EliteBook 850 G7:i7 10610U,32GB RAM,512GB SSD,15.6" FHD,vil.MAGYAR numeri.bill,WWAN 4G,Win11
- ASUS TUF Gaming GeForce RTX 4070 Ti 12GB
- Hama Ultraslim Fali konzol (TV)
- ÉRKEZETT Legújabb Bontatlan Új M2 IPAD PRO 2022 12,9 128GB - 256GB Wi-Fi Azonnal DEÁK TÉRNÉL Átvehe
- Női városi bringa (Sierra City)
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Ozeki Kft.
Város: Debrecen