Xbase ++ - XBase++

Wizualny xbase ++ z przykładowych zwierząt

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!"

Linki zewnętrzne