OT: constructor Pascal a C++
Karel M
a8dtljb na gmail.com
Čtvrtek Květen 26 06:48:30 CEST 2016
Priklad, zkuste to napsat takto:
uvnitr .h souboru:
class TMereni
{
private:
bool FConnected;
public:
__fastcall TMereni();
__fastcall ~TMereni();
};
class TForm1 : public TForm
{
__published: // IDE-managed Components
void __fastcall FormCreate(TObject *Sender);
public: // User declarations
__fastcall TForm1(TComponent* Owner);
TMereni *Mereni1;
TMereni *Mereni99;
};
uvnitr .cpp souboru:
__fastcall TMereni::TMereni()
{
//konstruktor
}
__fastcall TMereni::~TMereni()
{
//destruktor
}
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
//hlavni form
}
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Mereni1 = new TMereni();
Mereni99 = new TMereni();
}
Pokud by Vam to porad neslo, tak bych Vam mohl pripadne jeste udelat
priklad primo v C++ builderu.
Karel M.
Dne 25. května 2016 19:24 Milan Kratochvíl <krata.milan na seznam.cz>
napsal(a):
> Jak to píši z domova, protože v práci nemám přístup na konferenci, tak
> jsem udělal pár chyb.
> Krom chybějící dvojtečky a endu místo } jsem ještě špatně napsal jak mám
> definováno MereniA a MereniB
> MereniA a MereniB mam definováno v části Public ve formuláři jako TMereni*
> MereniA; a TMereni* MereniB;
>
> Popravdě řečeno zkoušel jsem všechny následující tvary a pokud to
> kompilátor přeložil tak to skončilo s popsanou chybou.
> MereniA = new TMereni;
> MereniA = new TMereni();
> MereniA = new (TMereni());
>
> A dokonce jsem někde našel i zápis, který mi to sice přeložilo ale stále
> chyba při běhu programu.
> MereniA = &TMereni::TMereni();
>
> Díky
> Milan
>
> Dne 25.5.2016 v 19:05 Karel M napsal(a):
>
> Zběžně Vám mohu napsat toto: nevím co máte v OnCreate v C++, ale přidal
> bych závorky tedy:
>
> MereniA = new TMereni();
>
> do .h souboru bych přidal deklaraci_
>
> TMereni MereniA;
>
> v třídě máte dvakrát public, jeden bez dvojtečky, udělal bych to takto:
>
> class TMereni
> {
> private:
> int FMereni1;
> ........
> public:
> TMereni (void);
> ~TMereni (void);
> __property int Mereni1 = { read=FMereni1};
> .......
>
> Dne 25. května 2016 18:36 Milan Kratochvíl <krata.milan na seznam.cz>
> napsal(a):
>
>> Zdravím všechny,
>> musím přepsat program z pascalu do c++ protože novější knihovny má
>> dodavatel pouze pro c++. Dělám v c pro jednočipy a tak jsem si myslel že to
>> nebude tak strašný ale narazil jsem docela na začátku.
>> V pascalu mám třídu TMereni, kterou vytvořím v události OnCreate od
>> hlavního formuláře a vše je funkční.
>>
>> ... OnCreate...
>> ...
>> MereniA:= TMereni.Create();
>> MereniB:= TMereni.Create();
>> .....
>>
>> V C++ mám také vytvoření v OnCreate a překlad je bez chyb, ale běh
>> programu skončí s hláškou access violation právě při volání constructoru.
>> Jen dodám že Mereni mam definováno v části Public ve formuláři jako
>> TMereni* Mereni; a vnitřky funkcí jsou zatím prázdné, protože jsem se dál
>> nedostal.
>>
>>
>> Nevíte někdo náhodou co by mohlo být blbě? zkoušel jsem hledat ale asi se
>> ggla špatně ptám. Používám Delphi 2007 a C++Builder 2007
>>
>> ... OnCreate...
>> ...
>> MereniA = new TMereni;
>> MereniB = new TMereni;
>> .....
>>
>>
>>
>> TMereni = class
>> constructor create();
>> destructor destroy();
>> private
>> FMereni1 : integer;
>> FMereni2 : integer;
>> FMereni3 : integer;
>> FPrepocet1 : real;
>> FPrepocet2 : real;
>> FPrepocet3 : real;
>> public
>> property Mereni1 : integer read FMereni1;
>> property Mereni2 : integer read FMereni2;
>> property Mereni3 : integer read FMereni3;
>> property Prepocet1 : real read FPrepocet1;
>> property Prepocet2 : real read FPrepocet2;
>> property Prepocet3 : real read FPrepocet3;
>> procedure Merime1();
>> procedure Merime2();
>> procedure Merime3();
>> procedure Prepocet();
>> end;
>>
>>
>>
>> class TMereni
>> {
>> public:
>> TMereni (void);
>> ~TMereni (void);
>> private:
>> int FMereni1;
>> int FMereni2;
>> int FMereni3;
>> float FPrepocet1;
>> float FPrepocet2;
>> float FPrepocet3;
>> public
>> __property int Mereni1 = { read=FMereni1};
>> __property int Mereni2 = { read=FMereni2};
>> __property int Mereni3 = { read=FMereni3};
>> __property float Prepocet1 = { read=FPrepocet1};
>> __property float Prepocet2 = { read=FPrepocet2};
>> __property float Prepocet3 = { read=FPrepocet3};
>> void __fastcall Merime1(void);
>> void __fastcall Merime2(void);
>> void __fastcall Merime3(void);
>> void __fastcall Prepocet(void);
>> end;
>>
>>
>> Díky za nakopnutí.
>> Milan
>> _______________________________________________
>> HW-list mailing list - sponsored by <http://www.HW.cz>www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>
>
>
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.czHw-list na list.hw.czhttp://list.hw.cz/mailman/listinfo/hw-list
>
>
>
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20160526/169782f4/attachment.html>
Další informace o konferenci Hw-list