Hirdetés
- Brogyi: CTEK akkumulátor töltő és másolatai
- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- GoodSpeed: 3I/Atlas: Üstökös vagy idegen civilizáció űrhajója?
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- eBay-es kütyük kis pénzért
- GoodSpeed: Nem vénnek való vidék - Berettyóújfalu
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Mr Dini: Mindent a StreamSharkról!
- Magga: PLEX: multimédia az egész lakásban
-
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
● olvasd el a téma összefoglalót!
- Horgász topik
- Feketelista, avagy a rossz boltok topicja
- Brogyi: CTEK akkumulátor töltő és másolatai
- Androidos tablet topic
- Luck Dragon: Asszociációs játék. :)
- Önvédelmi fegyvernek is elmenne a Keychron analóg billentyűzete
- Epic Games
- sziku69: Fűzzük össze a szavakat :)
- Filmvilág
- One otthoni szolgáltatások (TV, internet, telefon)
- További aktív témák...
- iPhone 14 pro 128 gb gold 100% akksi
- 20% karácsonyi akció Komplett asztali gép eladó (GTX 1060 6GB, i5-7500, 512GB SSD)
- T14 Gen1 27% 14" FHD IPS i7-10610U MX330 16GB 256GB NVMe ujjlolv gar
- Precision 7560 27% 15.6" FHD IPS i7-11850H RTX A3000 32GB 1TB NVMe ujjlolv IR kam gar
- HP ZBook Studio G8 i7 32GB RAM 1TB SSD RTX A3000/Garancia
- HIBÁTLAN iPhone 14 Plus 128GB Purple -1 ÉV GARANCIA - Kártyafüggetlen, MS3659, 100% Akksi
- Ulefone Armor 33 Pro
- ÁRGARANCIA! Épített KomPhone Ultra 9 285K 32/64GB RAM RX 9070 XT 16GB GAMER PC termékbeszámítással
- AKCIÓ! Asus ROG STRIX Z490-G Gaming WiFi alaplap garanciával hibátlan működéssel
- Azonnali készpénzes AMD Radeon RX 9000 sorozat videokártya felvásárlás személyesen/csomagküldéssel
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest



