GNOME nebo KDE ?
Lubos Lunak
l.lunak na sh.cvut.cz
Čtvrtek Listopad 23 11:02:00 CET 2000
Petr Tomasek tomasek na etf.cuni.cz on 22 Nov 2000 22:55:49 +0100 wrote:
>
> Muzu se zde zarytych c++-karu zeptat na jednu vec? V
> dokumentaci ke Gtk+ se tvrdi, ze _je_ OO, ze se jenom
> pouziva jakysi objektovy model, ktery neni na urovni jazyka
> (jako c++, nebo objc), ale na aplikacni urovni (sorri, ale
> nejsem vzdelan v terorii programovani, tak doufam, ze
> neplacam nesmyslny termity, gdyztak si to preberte).
Nejlepe se to asi ukaze na rekneme BASICu a proceduralnim stylu
programovani. Myslen je takovy ten "puvodni" BASIC rekneme ze Sinclairu
nebo tak nejaky, ktery samozrejme zadne procedury/funkce nema, a presto se
v nem da programovat proceduralne ( stejne by se jako priklad dal pouzit i
napr. assembler ). No a zatimco v C/C++, Pascalu atd. se normalne pisi
funkce, volaji se, predavaji se jim parametry atd., v BASICu to samozrejme
takhle jednoduse nejde. Jde to ale udelat rucne. Rozdeleni na funkce se
udela stavbou programu plus se rekneme na zacatek kazde funkce da extra
radek s REM, pro predavani parametru a navratove hodnoty se vymysli nejaky
sikovny hack pres globalni promenne, navic aby to fungovalo i pri vnorenem
volani nebo rekurzi, a hura, v BASICu se da programovat proceduralne.
Navic, da se v nem programovat i objektove, staci, kdyz se jeste navic
pridaji dalsi finty podobne tem, kterymi se da v C programovat objektove.
Gtk+ OO rekneme je, ale stejne jako BASIC rekneme je i proceduralni, musi
se ta objektovost udelat v Gtk+ rucne. Dedicnost se fixluje vlozenim predka
jako prvniho prvku do struktury potomka, pristupova prava jsou metodou
"ohlidej se sam", virtualni metody tusim Gtk+ fixluje pres pointery,
"automaticke" pretypovani na predka je rucne pomoci maker. Staci se podivat
do dokumentace Gtk+ na vysvetleni jejich objektoveho modelu. Zkratka
vsechno, co C++ umi samo od sebe, se tu musi udelat rucne.
>
> No, jenom me neyde do hlavy, ze furt osocujete Gtk+, ze
> neni objektove...
>
> PT>
>
>
> --
> Petr Tomasek, http://www.etf.cuni.cz/~tomasek/
Lubos Lunak
l.lunak na email.cz http://dforce.sh.cvut.cz/~seli
Další informace o konferenci Linux