Xbase ++ - XBase++
Xbase ++ jest obiektowym językiem programowania , który ma wielokrotne dziedziczenie i polimorfizm . Opiera się ona na xbase dialekcie języka i konwencji. Jest w 100% Clipper język zgodny wspieranie wielokrotne dziedziczenie, polimorfizm , programowania obiektowego . Obsługuje typy danych xBase, w tym CodeBlocks. Z Xbase ++ możliwe jest generowanie aplikacji dla systemu Windows NT, 95, 98, ME, 2000, XP, Vista i Windows 7.
Pomoc Clipper
Xbase ++ obsługuje starych poleceń @ say / GET do definiowania formularzy wprowadzania danych, jak również edytor graficzny do tworzenia formularzy wprowadzania danych podobnych do Visual FoxPro . Posiada również wizualne środowisko programistyczne , wsparcie dla plików OEM (format DOS) i ANSI (Windows), zintegrowany debugger i kompilator zasobów, aby dodać ikony i grafiki do aplikacji. Może generować pliki EXE lub DLL.
RDD
Xbase ++ obsługuje wymiennym sterowników bazy danych (RDD, które zapewniają dostęp do wielu formatów baz danych) Clipper Poprzez DatabaseEngines (DBES). Pakiet podstawowy obsługuje DBF Fox, NTX, CDX SDF i Del (ograniczony). Wspiera on także CORBA 2.0, Visual FoxPro 3.0 do 5.0 formaty bazy danych, a dostęp do serwerów SQL.
Narodziny
Xbase ++ urodził się po decyzji Computer Associates rezygnacji Clipper rozwijać wizualne obiektów . Klęska Wizualnych obiektów jako substytut Clipper uprawniona do tworzenia bibliotek zewnętrznych i tworzenie Clipper kompilatory składni.
Przykładowy kod źródłowy
#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!"