Xbase++ – zorientowany obiektowo język programowania, obsługujący wielokrotne dziedziczenie i polimorfizm. Jest oparty na języku Xbase oraz jest w stu procentach kompatybilny z językiem programowania Clipper. Xbase++ obsługuje typy danych z języka Xbase, również te, które znajdują się w IDE Codeblocks. W języku Xbase++ można stworzyć aplikacje dla systemów z rodziny Windows: NT i nowszych.

Narodziny Xbase++ powstał po decyzji CA Technologies o zaprzestaniu prac nad językiem Clipper, aby rozwijać język Visual Objects. Niepowodzenie Visual Objects, jako następcy języka Clipper doprowadziło do stworzenia nowych bibliotek oraz kompilatorów zgodnych ze składnią języka Clipper.

Obsługa Clippera Język Xbase++ obsługuje stare komendy @SAY/GET z języka Clipper, służące do definicji formularzy. Visual Xbase++ - IDE języka Xbase++ posiada edytor graficzny do tworzenia formularzy podobnych do Visual FoxPro, obsługuje pliki OEM (format DOS) i ANSI (Windows). Ma zintegrowany debugger oraz kompilator zasobów do dodawania ikon i grafik do aplikacji. Program potrafi wygenerować pliki EXE lub DLL.

RDD Xbase++ obsługuje RDD (z ang. Replaceable Database Drivers - sterowniki, które zapewniają dostęp do wielu formatów baz danych) poprzez DatabaseEngines z języka Clipper. Podstawowy pakiet zawiera obsługę DBF, FOX, NTX, CDX, SDF i DEL. Ponadto wspiera standard Common COBRA 2.0, obsługuje formaty baz danych z Visual FoxPro od wersji 3.0 do 5.0 i oferuje dostęp do serwera SQL.

Przykładowy program #include "class.ch"

// // This program prints: // // Missy Meow! // Mr. Bojangles Meow! // Lassie Bark! // Press any key to continue... //

///////////////////////////// // PROCEDURE Main() // /////////////////////////////

LOCAL aAnimals := Array(3) LOCAL i

aAnimals := Cat():New("Missy") aAnimals := Cat():New("Mr. Bojangles") aAnimals := Dog():New("Lassie")

FOR i:=1 TO LEN(aAnimals) ? aAnimals[i]:Name + " " + aAnimals[i]:Talk() NEXT i

WAIT

RETURN

///////////////////////////// // CLASS Animal // /////////////////////////////

EXPORTED: VAR Name READONLY

METHOD Init DEFERRED CLASS METHOD Talk ENDCLASS

METHOD Animal:Init( cName ) ::Name := cName RETURN Self

///////////////////////////// // CLASS Dog FROM Animal // ///////////////////////////// EXPORTED: METHOD Talk ENDCLASS

METHOD Dog:Talk() RETURN "Bark!"

///////////////////////////// // CLASS Cat FROM Animal // ///////////////////////////// EXPORTED: METHOD Talk ENDCLASS

METHOD Cat:Talk() RETURN "Meow!"

Zobacz też DBF

Linki zewnętrzne

Kategoria:Języki xBase