Aktív témák
-
blaci947
csendes tag
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...
[Szerkesztve] -
Miracle
senior tag
Szervusz.
tobb tanacsom is lenne:
1: Ezt a topicot zarasd be szepen 1 moderatorral, es a tobbi kerdesedet a meglevo sok c++ topic egyikeben tedd fel, TENYLEG nem kell meg egy.
2: a problema visual c++tol fuggetlen, es valojaban mar a C nyelv fejlesztesekor elokerult, es megoldottak:
----- A.h -------
#ifndef A_H
#define A_H
class a
{/*...*/};
#endif // A_H
---- A.h END -----
ezzel csak annyi problema van, hogy A nev nem jelent semmit, talalj ki valami jobbat, ami jellemzo arra az adatstrukturara, amit megvalosit az osztaly. ez a megoldas a problemak nagyreszet megoldja, de tovabbra is rpoblemat jelenthet, hogy kulonallo forditasi egysegekbe is belekerulhetnek a .h fileban kidolgozott fuggvenyek kodjai, ezert csak inline fuggvenyeket definialj a .h-ban, de ha nem muszaly azokat se.
szerk: erdemes atgondolni a forrasfilera tagolast, ha csak 1 osztaly van 1 .h fileban, akkor szepen azt a nevet illik adni a filenak, es az osztalyt meg ERTELMESEN kell elnevezni, ergo az ,,Osztaly'' nagyon rossz nev. csak azert ne legyen osztalyod, mert azt tanultad, erre a fuggvenyeket hasznaljuk. tobb osztaly definicioja meg csak akkor legyen 1 .h fileban, ha azok egyutt valositanak meg valami funkcionaitast, es kulon kulon nincs ertelmuk.
meg 1-2 tanacs: gyakran rosszak azok az osztalyok, amik inkabb csak fuggvenyeket tartalmaznak, amik esetleg kozos adatokon vegeznek muveleteket. ez rossz programtervezes, ezt nagyon keves helyen tanitjak, es akkor is sok gyakorlat kell hozza, hogy valamire haszalni tudd, de mindenesetre erdemes utanaolvasni, honapokat lehet vele sporolnitehat a c++ban nem veletlenul maradtak benne a fuggvenyek, az osztalyokat adatabsztrakciohoz hasznaljuk fel!
es akkor a tovabbi kerdeseket a forum jobb oldalan talalhato kereso segitsegevel megtalalhato SOK SOK c++ topic barmelyikeben, ha lehet...
[Szerkesztve] -
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 -
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...
Aktív témák
- Dobozos DELL Inspiron 16 Fémházas Multimédiás Laptop 16" -40% Ryzen 7 8840U 8mag 16/1TB FHD+ IPS
- Csőtörés bemérés - Csőtörés Javítás Szakszerűen
- Professzionális vízszerelés 0-24 akár azonnali kiszállással
- Fiorenzato AllGround eladó
- Új Zsír Dell Inspiron 14 7441 Érintős Ultrabook Laptop -25% Snapdragon X Plus 10Mag 16/1TB SSD QHD+
- AKCIÓ! EZÜST! RITKASÁG! Surface Pro 11 Qualcomm Snapdragon X Elite 16GB 512GB OLED 120Hz Gar!
- GYÖNYÖRŰ iPhone SE 2020 128GB Red -1 ÉV GARANCIA - Kártyafüggetlen, MS2183, 100% Akkumulátor
- AKCIÓ! AMD Ryzen 7 3800X 8mag 16szál processzor garanciával hibátlan működéssel
- GYÖNYÖRŰ iPhone 12 mini 64GB Green -1 ÉV GARANCIA - Kártyafüggetlen, MS3054, 96% Akkumulátor
- HIBÁTLAN iPhone 14 256GB Purple -1 ÉV GARANCIA - Kártyafüggetlen, MS3092, 98% Akkumulátor
Állásajánlatok
Cég: FOTC
Város: Budapest