eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaRynek pracy STM32Re: Rynek pracy STM32
  • Data: 2022-07-25 15:33:45
    Temat: Re: Rynek pracy STM32
    Od: Piotr Gałka <p...@c...pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    W dniu 2022-07-22 o 18:51, heby pisze:

    Znajduję tylko czas aby się odezwać, a nie aby poeksperymentować -
    zawsze mówię sobie - to zaraz i ... nic nie robię.

    > Skoro konstruktor przyjmuje referencję, to umawiasz się z wołającym, że
    > to jego sprawa trzymać ten obiekt. Taka umowa, w przypadku używania
    > referencji, jest dość powszechna i bardzo podobna do trzymania pointera.

    To jest standardowe podejście.
    Ale moim celem było, aby tego GUID wpisać tylko i wyłącznie jako
    parametr wywołania funkcji - pominąć potrzebę robienia przeze mnie
    zmiennej tego typu.

    Twój przykład nawet stosując referencje nie realizuje tego co ja wtedy
    chciałem osiągnąć.

    W tym Twoim przykładzie?:
    ---------------
    static GUI konkretnyGUID = { };

    class KlasaKonkretna : public KlasaBazowa {
    public:
    KlasaKonkretna() : KlasaBazowa( konkretnyGUID ) { [...] };

    [...]
    };
    ---------------

    Mi chodziło o to aby: nie tworzyć statycznej zmiennej konkretnyGUID
    tylko zapis jego wartości ująć jakoś od razu w miejscu gdzie go
    wstawiłeś jako parametr konstruktora KlasyBazowej w konstruktorze Klasy
    konkretnej.

    Konstruktor KlasyKonkretnej najchętniej zostawiłbym w pliku h, a takie
    static konkretny GUID to dla mnie musi być w pliku cpp więc i
    konstruktor trzeba tam przenieść.

    Ja chciałem zrobić coś podobnego jak mam definiowane mikrokontrolery.

    Mam:

    class ATProg : public ATProc
    {
    ....
    public:
    ATProg(dword fs,dword fp,dword es,dword ep,qeord fm,dword
    sg):ATProc(...){}
    };

    I potem już konkretne są definiowane tak:

    class ATmega162Prog : public ATProg
    {
    public:
    ATmega162Prog():ATProg(0x4000,128,512,1,0x1EFFFF,0x1
    E9404){}
    };

    To jest cała definicja (w pliku h). Nic w niej tu nie skróciłem.
    Bez śladu w pliku cpp.

    Tak samo następnie mam definiowane klasy:
    ATmega8Prog
    ATmega48Prog
    ATmega88Prog
    ATmega644Prog

    I tak samo chciałem zrobić z różnymi pochodnymi pewnej klasy, które to
    pochodne różnią się między sobą tylko tym GUID.
    Czyli konstruktor klasy bazowej miał mieć jeden parametr typu GUID a
    konstruktory kolejnych klas miały go wołać wpisując tam wartość tego GUIDa.

    Klasy pochodne występowały by tylko w pliku h.

    Wiem, że mi się to nie udało. Ogólnie wiem, że nie udawało mi się wpisać
    GUIDA jako parametru wywołania konstruktora (bezpośrednio w wywołaniu).
    P.G.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: