Hirdetés

Keresés

Aktív témák

  • blaci947

    csendes tag

    Gondolom nem csak én írok több forrásfájlból álló programot...

    Azt már (tapasztalatból és kolis tanáromtól) megtanultam, hogy programot írni csak úgy érdemes, ha 1 hónap múlva is kristálytisztán átlátom, mi mit csinál.
    Ezért én a jól struktúrált programozás híve vagyok. Habár a Pascal nyelv még a C-nél is erősebben struktúrált, mégis C++ -ban programozok. (Hogy miért, annak sok indoka van, leginkább azért, mert elsőben ezt tanultuk az egyetemen... :) )
    Az átlátható programszerkezet kiépítését igen nagymértékben segíti a több forrásfájlra darabolás. Ezt viszont csak körültekintően lehet hiba nélkül megvalósítani. (Illetve előbb-utóbb elengedhetetlen az OOP használata.)

    Ez a topic remélem sokaknak hasznos lesz...

    Az adataink olyanok, mint az egészségünk: addig vigyázzunk rájuk, amíg megvannak! !!!

  • blaci947

    csendes tag

    Na, akkor le is írnám nem rég keletkezett problémámat:

    Szóval a következőt kéne MS Visual
    C++-ban: egy osztálydeklarációt több más fájlból is el
    kell, hogy érjek. Tehát csináltam egy header-fájlt.
    Viszot a többszörös include-ok miatt a
    főprogramba többször is bekerül a deklaráció.
    Ezért meg a fordító anyázik.

    A program szerkezete kb. ilyen:

    --------------------- A.h ----------------------

    class Osztaly
    {
    void Tagfuggveny ();
    };

    --------------------- A.cpp ---------------------

    #include ''A.h''

    Osztaly::Tagfuggveny()
    {
    ...
    }

    --------------------- Main.cpp ---------------------

    #include ''A.h''

    Osztaly o;

    ...

    ----------------------------------------------------

    Ezért persze nem szól semmit. A baj ott van, mikor sok
    forrásfájlom van, kb. mindenki mindenkit használ, és
    lényegében:

    #include ''A.h''
    #include ''A.h''

    keletkezik.

    Erre a fordító kidobja, hogy:

    error C2011: 'Osztaly' : 'class' type redefinition

    Tud valaki valami megoldást? Előre is nagyon köszi a
    segítséget. :)

    Laci

    Az adataink olyanok, mint az egészségünk: addig vigyázzunk rájuk, amíg megvannak! !!!

  • blaci947

    csendes tag

    válasz Miracle #3 üzenetére

    Szervusz!

    Először is nagyon köszönöm a tanácsodat! Tényleg ez a megoldás! Erre nem gondoltam...

    Másodszor, kerestem hasonló témájú topicot, de nem találtam. Úgy gondoltam, hasznos egy ilyen önálló topic is, de ha egy erre járó moderátor nem így látja, nyugodtan zárhatja a topicot. (Sőt ilyen esetben erre meg is kérem!)

    Csak megnyugtatásul: természetesen a programban nem A.h név szerepel. :) Így ténleg csak óvodás programozna.
    Amit az osztályokról írtál: valóban adatabsztrakció esete forog fenn. :) (Függvényeken kell műveleteket végezni, miközben azok értéke pontonként adott...)
    Szerk.: A.h meg hasonló nevekt azért írtam, mert én pl. utálom, ha valaki begépeli a fél forráskódot, és felteszi a kérdést: ''Miért nem működik?'' Ilyeneken sajnos nem segíthetek, mert még a saját kódomban is gyűlölök hibát keresni, hátmég máséban. (Ami másé: az sokkal szebb, jobb, gyorsabb, mint az enyém, csak épp más logikájával készült...
    Szerk.: hejesírás... :DD



    [Szerkesztve]

    Az adataink olyanok, mint az egészségünk: addig vigyázzunk rájuk, amíg megvannak! !!!

Aktív témák

Hirdetés