Xbase++

język programowania

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

edytuj

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

edytuj

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.

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

edytuj
#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[1] :=  Cat():New("Missy")
  aAnimals[2] :=  Cat():New("Mr. Bojangles")
  aAnimals[3] :=  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ż

edytuj

Linki zewnętrzne

edytuj