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