- Yettel topik
- Szivárognak a Vivo X300 kameraadatai
- Vékonyabb lett, jobb kamerát kapott, de az akku maradt a régi: itt a Fold7
- Légies iPhone halvány színei
- Xiaomi Smart Band 10 - a hetedik napon megpihen
- Xiaomi 15 - kicsi telefon nagy energiával
- Írországban lezárult, az USA-ban csak most indul az Apple dráma
- Vivo X200 Pro - a kétszázát!
- Samsung Galaxy A56 - megbízható középszerűség
- Mobil flották
-
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).
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Szeged és környéke adok-veszek-beszélgetek
- Yettel topik
- Trollok komolyan
- Eredeti játékok OFF topik
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Filmvilág
- Formula-1
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- Luck Dragon: Asszociációs játék. :)
- XPEnology
- További aktív témák...
- Akciós dokkolók, Lenovo Legion Pro 7 RTX 4080/4090 laptopok, licencek, antivírusok
- ÁRGARANCIA!Épített KomPhone i5 10600KF 16/32/64GB RAM RTX 3050 6GB GAMER PC termékbeszámítással
- Új! HP 230 Vezetéknélküli USB-s Billentyűzet
- BESZÁMÍTÁS! LG UltraGear 27GL850-B 144Hz QHD 1ms monitor garanciával hibátlan működéssel
- Samsung Galaxy Z Fold5 , 12/256 GB , Kártyafüggetlen
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest