12. oktober 2001 - 12:54
Der er
5 kommentarer og
1 løsning
Oversæt til C++
Jeg er igang med at lærer noget C++ programmering.
Men for at jeg bedre kan forstå det, skal jeg lige have hjælp til at oversætte følgende Pascal-koder:
Unit Unit1
Uses Windows, Buttons, forms;
interface
type
TForm1 = class(TForm);
TButton1 = TButton;
procedure FormCreate(sender: TOBject);
implementation
procedure TForm1.FormCreate(sender : TObject);
var
SomeVar : integer;
begin
end;
procedure TForm1.Button1Click(sender : TObject);
var
SomeVar : integer;
begin
end;
Håer i kan hjælpe mig!
12. oktober 2001 - 13:18
#2
C++ Builder:
USEINIT(\"..\\UNIT1.CPP\");
#include <windows.h>
#include <vcl.h>
class TForm1 : Tform
{
public:
TButton *TButton1;
void __fastcall FormCreate(TObject* Sender);
void __fastcall Button1Click(TObject* Sender);
}
void __fastcall Form1::FormCreate(TObject* Sender)
{
int SomeVar;
{
};
} // FormCreate
void __fastcall Form1::Button1Click(TObject* Sender)
{
int SomeVar;
{
};
}
\"Ordret\" oversat - men ... Normalt vil C++Builder ligesom du kender det fra Delphi generere koden til dig - selvfølgelig blot som C++ syntaks. Du kan bruge .dfm fra dit Delphi projekt direkte, og så \"blot\" skrive ObjectPascal koden om til C++ - men C++ Builder kan rent faktisk også compilere dine \"gamle\" Delphi forms !!! (Men Two-way tools virker selvsagt ikke.)
12. oktober 2001 - 15:50
#4
Ja, ja! Jeg ved da godt, at C++ Builder selv generer koden til mig, men jeg skulle jo lige have et eksempel på, hvordan man benytter C++ seriøst, i stedet for eksemplerne fra bogen!
Eks:
Class MinKlasse
{
}
- men et eksempel, hvor man kan BRUGE den.
Men mange tak for hjælpen!
15. oktober 2001 - 09:21
#5
Vi har lavet en del eksempler her på eksperten omkring brugen af klasser til dette og hint - men du spurgte altså direkte på oversættelse af din Pascalkode.
Her er et af dem:
#include <conio.h>
#include <string.h>
class bil
{
public:
bil(char *, long);
char* getbrand(void);
long getvalue(void);
private:
char brand[31];
long value;
};
bil::bil(char *name, long price)
{
strncpy(brand, name, sizeof(brand)-1);
value = price;
}
char* bil::getbrand(void)
{
return brand;
}
long bil::getvalue(void)
{
return value;
}
int main(void)
{
bil testbil(\"Ford\", 75350);
bil tbl[10] = { bil(\"Ford\", 75000),
bil(\"Opel\", 35000),
bil(\"Skoda\", 15000L),
bil(\"Mercedes\", 1750000),
bil(\"Volvo\", 205000),
bil(\"Saab\", 215000),
bil(\"Seat\", 85000),
bil(\"Chrysler\", 245000),
bil(\"Porche\", 500000),
bil(\"Ferrari\", 1500000)
};
for (int i=0; i < 10; i++)
cprintf(\"bil nr. %d = %s, %lu\\r\\n\", i,
tbl[i].getbrand(), tbl[i].getvalue());
getch();
return 0;
}
Du kan bruge \'søg\' funktionen til at finde flere. (Søg efter teksten \"class\".)