Kezdőoldal » Számítástechnika » Programozás » C++ osztály kérdés?

C++ osztály kérdés?

Figyelt kérdés

Az a kérdésem, hogy van 2 osztályom:


1. Adatok (objektumai: private típusú tömb, függvényei: addAdat, getAdat)

2. Menu (függvényei: mainMenu, addMenu, deleteMenu)


A main() függvényben létrehozom az Adatok és a menu egy példányát:


main() {

Adatok adatok();

Menu menu();

}


Na most én a Menu osztályból szeretném elérni az Adatok előbb létrehozott tömbjét az adatok.addAdat() függvényen keresztül, hogy a menürendszeren keresztül mókolni tudjak rajta, de nem értem hogyan kéne ezt megoldani... Ha a main()-ben hozom létre az Adatok egy példányát, akkor azt a Menu osztályból nem érem el. De ha a Menu osztályban hozom létre, akkor a main()-ből nem érem el az ott létrehozott példányt, márpedig fontos lenne, hogy ott is lássam a létrejött példányt.


Valaki tud segíteni?



2019. febr. 19. 21:32
 1/5 A kérdező kommentje:
Esetleg az megoldás lehet, ha a Menu konstruktorában átadom az Adatok tömbjét? Vagy nem így kell ezt helyesen?
2019. febr. 19. 21:34
 2/5 anonim ***** válasza:

Ha konstruktornak nincs paramétere C++ban akkor a "()" jel elhagyható.


Javaslom a pointeres "new" kulcsszóval készíteni az osztályokat, mivel paraméter átadás esetén "másolatot" készít, így adatvesztés is lehet. Ofc, program végén delete használandó a memoria takarítására.


Nyílván, hogy 2 osztályt példányosítasz 2 külön változóba. Így nincs kapcsolat kettőjük között. A kérdés, hogy mi a cél?

Ha menü adja az adatokat, akkor vagy Konstruktorként átadva az adatot, vagy beállítani olyat, hogy setData (magyarosan: setAdatok) metódust, ezzel feltöltve a Menu property/attribútuma, amit már a getXyMenu metódussal tudsz hívni a Menu-ből.


Ha konstruktort használsz Javaslom a inicializálót.

[link]

2019. febr. 19. 22:39
Hasznos számodra ez a válasz?
 3/5 A kérdező kommentje:

Köszi, igazából csak összerittyentettem a kérdésben feltett kódot, hogy legyen egy láható példa, szóval az szintaktikailag lényegtelen.


Amit szeretnék:


Van két osztályom:

- Az egyik létrehoz egy tömböt adott fájlból (Adatok class) és kezeli (hozzáad adatot, töröl adatot).

- A másik kezeli a program menüjét (kiír, almenükbe belép, stb.).


A problémám az, hogy nekem a Menu osztályból kell használnom a main()-ben létrehozott Adatok példányának függvényeit, hiszen a menün keresztül mókolom az adatokat. Nem tudom érthető-e.

2019. febr. 19. 23:46
 4/5 anonim ***** válasza:
A Menu-ben létrehozod az Adat osztály példányát, és metódusokat, melyek a kívánt műveleteket végzik, pl public void addAdat(parameter) { adat.addAdat(paramater); }. Azután a main-ben létrehozod a Menu példányát, és ott adatokat hozzádani, pl a menu.addAdat(inputAdat) metódussal tudsz, ami a Menu osztályban majd meghívja az adat.addAdat(parameter) metódust.
2019. febr. 20. 06:23
Hasznos számodra ez a válasz?
 5/5 A kérdező kommentje:
Köszi, teljesen világos amit írsz. Nem tudom miért nem gondoltam erre. :D
2019. febr. 20. 17:09

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, 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!