Documente Academic
Documente Profesional
Documente Cultură
Visual C CBuilder C
Visual C CBuilder C
C, C++
Fara amanunte principalele legaturi intre aceste limbaje:
- limbajul C++ a fost construit pe baza limbajului C (diferenta este ca intre limba
vorbita si cea literara);
- C-ul este un limbaj structurat (principala componenta este functia, limbajele mai vechi
nu au nici acest lucru ;
C:
int main(argc,argv)
int argc;
char *argv[];
{
/* ... */
return 0;
}
C++:
int main(int argc, char *argv[])
{
// ...
return 0;
}
JAVA:
class main{
public static void main(String[] argv){
// ...
}
}
Includerea fisierelor header
C:
#include /* Not search at present directory */
#include "fn.h" /* Search at present directory */
C++: similar to C, may have .hh header files
JAVA:
import java.io.PrintStream;
Input si output
C:
C++: similar to C, may have .hh header files
JAVA: import java.io.PrintStream;
Exceptii
C:
C++: declared by
throw ;
caught by
try{
// possible exception here
}catch(ExceptionTypeA& a){
// treat case a
}catch(ExceptionTypeB& b){
// treat case b...
try{
throw; // rethrow to catch below
}catch(...){
// ...
}
}
Implementarea Claselor
C++:
IfrRawdata rawdata;
// Implicit implementation IfrRawdata()
rawdata.read();
JAVA:
IfrRawdata rawdata;
// No implicit implementation IfrRawdata()
//...
rawdata = new IfrRawdata(eventsFile);
or
IfrRawdata rawdata = new IfrRawdata(eventsFile);
Asemanari:
- Reducerea efortului de a scrie aplicatii in Windows, minimizarea codului;
- Usurinta de a folosi Windows API cu C++ si nu cu C;
- Usurinta de a folosi abilitati puternice cum ar fi ActiveX, suport pentru baze de date,
toolbar, printare etc.;
- cel mai important este faptul ca folosesc acelasi limbaj de programare C++-ul (nu mai
putem vorbi de C pentru ca acum nu se mai pot concepe programe fara clase cu toate
ca s-a mentinut aceasta compatibilitate);
- incepind cu versiunea 4.0 C++Builder contine Class Explorer-ul echivalentul sau in
Visual C++ este ClassView-ul. Programatorii de Visual C++ nu cred ca-si pot inchipui
cum ar putea sa lucreze fara ClassView (care este ca un centru de comanda). Ei, eu pot
spune ca avind in vedere implementarea cu succes a conceptului de RAD (Rapid
Application Development) in Builder se pot dezvolta aplicatii mult mai repede si fara
Class Explorer-ul (pina acum am lucrat in C++Builder 3.0 care nu avea acest lucru);
- in amindoua mediile se poate lucra cu baze de date (dar intre noi fie vorba este de o
mie de ori mai usor in Builder);
- in Visual C++ avem MFC-ul (Microsoft Fundation Classes), in Builder avem
"componentele" in spatele carora se afla bineinteles clase. Aici este o diferenta de
concepte si de aceea o sa le explic pe rind;
- in Visual C++ avem Class Wizzard, in Builder avem Object Inspector. Cu toate ca sunt
total diferite in amindoua putem "vedea" functii (metode), proprietati ale unui anume
obiect (aici daca intram in amanunte nu ne ajunge toata revista);
Visual C++
- Visual C++ este un program foarte bine documentat (MSDN), cu exceptia
documentatiei pentru incepatori(cei care incep de la 0). Ce-i aia MESSAGE MAP, cum se
implementeaza o simpla metoda (functie) unui simplu dialog box sunt lucruri care nu le
stii cind incepi lucrul cu Visual C++ si totusi nu sunt descrisi acesti pasi decit in alte
manuale nu in help. Oricum, dupa primele programe acest lucru poate fi depasit foarte
usor si nu mai sunt probleme.
C++ Builder
- C++Builder implementeaza RAD din VCL (Visual Component Library) scris in Object
Pascal. C++ si Object Pascal difera putin in felul prin care creeaza, initializeaza, copie
sau distruge obiectele. Nu o sa intru in amanunte, dar pot spune ca C++Builder le
foloseste amindoua metodele;
- conceptul de componenta care este un bloc construit pentru oricare aplicatie de baza
VCL. Un lucru foarte important aici este faptul ca aceste componente pot fi downloadate
de pe Internet (inceracati la un motor de cautare "Components for CBuilder"). Ce sunt
de fapt aceste componente? Sunt clase care implementeaza un anumit obiect de
exemplu. Pot fi componente visual (cum ar fi un popup menu, un buton, un radio button
;
- tineti cont ca puteti crea asemenea obiecte pentru a le putea apoi folosi in oricare alta
aplicatie) sau nonvisual (cel mai simplu exemplu este un timer);
- in C++Builder multe evenimente (de exemplu) sunt pre-programate, pentru a
raspunde unui anume "event handler". Programul nu trebuie sa determine daca
evenimentul s-a produs ci prin simpla scriere a functiei (rutinei) (De exemplu, OnClick()
;
- la apasarea unui buton). Un lucru care mi-a placut in C++Builder este multitudinea de
evenimente pre-programate. In Visual C++ aceste evenimente trebuie "prinse" de
programator muncind suplimentar (multe dintre ele necesitind munca multa).
Borland C++
- este fratele mai mare al programelor amintite mai sus;
- in versiunea 3.1 se poate programa si pentru DOS (asemanator programelor "consola"
din Visual C++ si C++Builder) si pentru Windows API. Puteti incerca niste programe
pentru Windows API asa cum sunt in
Visual C++
- non-MFC program;
- versiunile ulterioare permit mai multe facilitati.