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 sporolni
tehat 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
- Xiaomi 17 Ultra - jó az optikája
- Star Trek Online -=MMORPG=-
- Redmi Note 13 Pro 5G - nem százas, kétszázas!
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Amerika kész lemondani a kormányról
- exHWSW - Értünk mindenhez IS
- Torrent meghívó kunyeráló
- Motorolaj, hajtóműolaj, hűtőfolyadék, adalékok és szűrők topikja
- BestBuy topik
- Fotók, videók mobillal
- További aktív témák...
- BESZÁMÍTÁS! Gigabyte Z390 i7 9700K 16GB DDR4 512GB SSD RX 6600 8GB Rampage SHIVA FSP 550W
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7600X 32/64GB RAM RTX 5060 Ti 16GB GAMER PC termékbeszámítással
- LG 27UP850K-W - 27" IPS LED - 3840x2160 4K - DisplayHDR 400 - USB Type-C - AMD FreeSync
- Creality HALOT ONE gyantás nyomtató
- BESZÁMÍTÁS! MSI Ventus 3X OC RTX 3090 24GB videokártya garanciával hibátlan működéssel
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Így ténleg csak óvodás programozna.
