Incr TCL (ITCL) on ensimmäinen TCL -kielen olio-laajennuksista . Osittain toteutettu C -kielellä . Sen avulla kirjoitetaan graafisten widgetien kirjasto, mukaan lukien widgetit (iWidgets). Tämän laajennuksen nimi on eräänlainen C++- nimen " käännös " Tcl-kielelle , incr- komento , kuten ++- toiminto , lisää argumenttiaan yhdellä.
Se on XOtcl :n ja SNIT :n ohella yksi kolmesta suosituimmasta oliosuuntautuneesta Tcl-laajennuksesta [1] .
ITCL - määrittää seuraavat komennot:
Esimerkkinä annetaan objektikääre Tcl-tekstitiedostojen päälle. Näyttää konfiguraattorien käytön.
luokkatiedosto { _ # kuvaa ja aseta alkuarvot # paikallisille muuttujille yksityisen muuttujan fid "" julkinen muuttujan nimi "" julkinen muuttuja pääsy "r" # define constructor ja destructor constructor { args } { eval configure $args # configure aktivoi konfiguraattorit } tuhoaja { if { $fid != "" } { sulje $fid } } #describe luokkametodit menetelmä get {} metodi laittaa { rivi } menetelmä eof {} } # määrittele menetelmäkappaleet body File::get {} { return [ gets $fid ] } body File::put { line } { laittaa $fid $line } body File::eof {} { palauttaa [ :: eof $fid ] } # define configurator for # global muuttujanimi # configurator for access ei ole luotu configbody File::name { if { $fid != "" } { sulje $fid } aseta fid [ avaa $nimi $access ] } # # Tiedostoluokka toiminnassa: # # luo File x -objekti #configure sen nimi x configure - nimi / etc / passwd #näytä tiedoston sisältö rivi riviltä samalla kun { ! [ xeof ] } { laittaa "=> [x get]" } #delete object poista objekti xLuokan eri jäsenet kuvataan seuraavilla komennoilla, jotka ovat saatavilla luokkamäärittelyssä: konstruktori , destructor , method , proc (toisin kuin menetelmä ei periydy), muuttuja , common (samanlainen kuin static C++:ssa), public , protected , private , joukko ja joukko . Periytys asetetaan inherit -komennolla . Moniperintö on sallittu. Kaikki menetelmät ovat virtuaalisia. Luokkaa määriteltäessä voit käyttää metaohjelmointitekniikoita esimerkiksi määrittääksesi useita paikallismuuttujia silmukassa sekä asettaaksesi ja hankkiaksesi niihin liitännäisiä [3] .
Yhdistelmäjoukkue (tai kokoonpano) määritellään seuraavasti:
yhtyeen nimi comp komento arg arg ...tai
yhtyeen nimikokoonpano { osan nimiOsien argumentit runko … … ensemble nameSubConst { osan nimiSubparts argumentit body … … } }Tcl-kokonaisuudet ovat kätevä syntaktinen lisäosa tavalliseen Tcl- nimiavaruuden ensemble -mekanismiin . Tämän mekanismin avulla voit ryhmitellä useita komentoja yhdeksi nimiavaruudeksi - kokonaisuudeksi. Komennon kutsuminen - osa kokonaisuudesta näyttää tältä:
nameConst nameParts- argumentitSamalla nimellä voi olla kuinka monta ensemble- konstruktia , kaikki niissä määritellyt osat sisällytetään samaan kokonaisuuteen [4] .