Kezdőoldal » Számítástechnika » Programozás » C++ beágyazott class private...

C++ beágyazott class private mezőihez hozzáférés a külső class-ból?

Figyelt kérdés

Sziasztok! Viszonylag kezdő vagyok még C++-ban, és ma felmerült bennem egy kérdés, amire nem nagyon találtam egyértelmű választ sehol. A kérdés a következő:


Definiálok két classt:


class hossz

{

int perc;

int mperc;

}


class cd

{

string eloado;

string cim;

int ev;

hossz lemezhossz;

};

Ugyebár mivel class-ként definiáltam, nem struct-ként, a mezők elérhetősége private-re defaultol, eddig világos. Tehát ha mondjuk egy fájlból akarom az adatokat beolvasni, akkor írnom kell getter-t és setter-t minden mezőhöz, hogy értéket tudjak adni kívülről a mezőimnek. Viszont fogalmam sincs, hogy a "beágyazott" class (hossz) private mezőinek az accessor/mutator függvényeit hol definiáljam. Ha magán a belső classon belül teszem, és mondjuk beírom ezt:


mycd.lemezhossz.setmperc(20);


Akkor meghal, mondván a "mperc" tag private. Ha a külső class-ba beleírom, hogy "friend class hossz" akkor ugyanezt csinálja. Fórumokon azt írták, érdemes ilyenkor simán a külső classon belül definiálni mindkét mezőt (perc, mperc) és egyszerűen ott írni hozzá accessort, ami egy valid alternatíva, de meg lehet valahogy oldani így is? Köszi a válaszokat előre is, és bocsi a zavaros/noob kérdésért :)



#C++ #accessor
2015. dec. 1. 19:26
 1/5 A kérdező kommentje:
Bocsi,a lemezhossz tag private természetesen, elírtam.
2015. dec. 1. 19:28
 2/5 anonim ***** válasza:
Eleve érdekes, hogy fel sem merül a "public:" használata, hiszen akkor kívülről elérhető lenne és pont ezt akarja a kérdező. Mellesleg elegendő egy getter és setter ami publikus és visszadja a tartalmát szövegesen, és a belső példánnyal is ugyanígy. A kérdés egy furcsa terültet feltételez: szükség van globális hozzáférésre az adattagokhoz, de a public használata tilos.
2015. dec. 1. 21:31
Hasznos számodra ez a válasz?
 3/5 A kérdező kommentje:
Köszi! Lehet, hogy praktikus alkalmazása nem sok van, a kérdés inkább elméleti jellegű volt, gyakorlás közben futottam bele egy ilyenbe, és zavart, hogy nem tudom, hogy működik. Egy példán keresztül tudnád nekem illusztrálni mit értesz az alatt, hogy visszaadja a tartalmát szövegesen, és ugyanígy a belsőbe is? Azt hiszem nem egészen világos. Köszi előre is!
2015. dec. 1. 21:50
 4/5 anonim válasza:

Szia!

Mennyire rég programozol és hogyan álltál neki? Én most kezdtem el programozást tanulni (c++) és nem tudom hogyan tudnék az egyetemig elég jól programozni. Mit ajánlotok?

16/F

2016. jan. 16. 14:54
Hasznos számodra ez a válasz?
 5/5 anonim ***** válasza:
Csinálsz egy publikus függvényt a cd osztályban ami visszaad egy referenciát a lemezhossz-ra, majd arra hívod meg a publikus setmperc függvényét a hossz osztálynak. Az más kérdés, hogy nem lenne esztétikus megoldás.
2016. jan. 16. 15:22
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!