Ennek az osztálynak a felépítését és jól csinálom vagy rosszul?
C++
..............
Van egy Window nevű osztályom ami képes arra,hogy létrehoz egy Windows ablakot és rendelkezik még olyan metódusokkal amikkel állítható a mérete színezhető vele az ablak stb.
Utána kedvem támadt készíteni saját stílusú kurzort.
Létrehoztam egy kurzor osztályt és ennek a kurzor osztálynak a leszármazottjává tettem a Window osztályt.
Kedvem szottyant egy Button osztályt is létrehozni mert úgy gondoltam nem helyes ha a Button megvalósítását a kurzor vagy a windows osztályba rakom de mivel a button a windows ablak része lesz ezért származtatnom kell a kurzor osztályból.
Úgy érzem hogy ez amit én csinálok nagyon nincs rendben segítsetek hogyan is kéne nekem ezt elrendezni?
Itt a kód röviden.
class Windows { }
class Cursors: public Windows:
Windows()
{}
class Buttons: public Cursors:
Cursors()
{}
//A mainben:
#include "Buttons"
typedef Buttons MyFinalWindow;
int main(int argc, char *argv[])
{
MyFinalWindow window;
window.show();
.......
.....
...
//Kódok
A származtatások teljesen rosszak.
A származtatás/öröklõdés lényege az általános->speciális kapcsolat.
Mi köze a kurzorodnak, vagy a.gombodnak az ablakhoz? Semmi.
Egyébként ha a button osztály nem örökli a windows osztályt akkor nem tudtam volna középre helyezni a buttont.
Mert nem tudtam volna hogyan lekérni a windows egy olyan metódusát ami visszaadja a windows ablak méretét.
"Mert nem tudtam volna hogyan lekérni a windows egy olyan metódusát ami visszaadja a windows ablak méretét."
De: tehetsz a Buttons-ban egy adattagba Windows-t, aminek az értékét a Buttons konstruktorból kapja. :)
De egyébként a gombok pozícióját szerintem úgy logikus, hogy nem ők maguk döntik el, hanem az ablak, szóval oda kéne a középre igazítás és nem a Buttons-ba. :)
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!