Új hozzászólás Aktív témák
-
doc
nagyúr
válasz
CoolBoy323 #1396 üzenetére
hat, lehet akar Java is, bar webfejlesztesben az nem jott be annyira mint ahogy az elejen latszott
weboldalt meg nem fogsz javaban kesziteni...
arra valtozatlanul a JavaScript/HTML5-ot ajanlom, esetleg PHP-t (de ez utobbinak csak ugy ugorj neki, ha van mar elotte tapasztalatod mas nyelvben, pl. JavaScriptben) -
CoolBoy323
nagyúr
akkor kezdjem a javaval?
azért a web-es területre esett a választásom, mert másra nem nem lenne szükségem sose talán, meg annyira jól úgy sem tudok megtanulni egy nyelvet magamtól, h azzal érjek is vmit, kivéve a webet SZERINTEM, azt meg tudnám tanulni idővel úgy, h egy normális oldalt össze tudjak hozni... de javítsatok ki ha tévednék!!!
-
doc
nagyúr
válasz
Jhonny06 #1394 üzenetére
nem tudom hogy ertetted a "regit" (gondolom nem szo szerint, ha idezojelbe tetted), mert a C++ boven oregebb mint a JS/HTML5
a C++-t nem tartom jo elso nyelvnek, tulsagosan elvonja a figyelmet a nyelv szerkezetenek megtanulasa/megertese a megfelelo gondolkodasmodrol
a JavaScript pl. azert nem rossz valasztas, mert nagyon gyorsan kap 'vizualis' eredmenyt, konnyen modosithato/tesztelheto a forras
persze a borzalmas debugolhatosag miatt meg rossz valasztasnem tudnek nyugodt szivvel ajanlani igy hirtelen egy nyelvet sem, de a C++ -t azt hatarozottan nem (plane hogy sajat bevallasa szerint a webfejlesztes erdekli, az meg azon ritka teruletek egyike, ahol a C++ nem igazan rug labdaba (most a CGI-t ne eroltessuk))
a visual studiot meg en rettentoen utalom, szerintem a hasznalhatatlansag hatarat surolja
sajna melo miatt gyakran kell hasznalnom, a tobbiek mindig tudjak amikor ez tortenik, mert folyamatosan kurvaanyazok
(konkretan VS2005, de ketlem hogy az ujabbaknal szamottevo elorelepes tortent volna)
-
Jhonny06
veterán
Nem tudom, hogy akkor mi lenne a jó.. ilyen "régi" nyelvekkel tuti nem tölteném az időmet, a C++ később megtérül. Hiába nem a programnyelv a lényeg, hanem a gondolkodásmód, akkor se.. mondjuk engem vonzanak a modern dolgok, szeretek a Visual Studio-val dolgozni, már csak ezért is gáz volt a pl. a Turbo Pascal-féle ocsmány GUI (persze ez a legjelentéktelenebb szempont).
-
doc
nagyúr
válasz
CoolBoy323 #1390 üzenetére
ha a webfejlesztes erdekel, akkor a C++ eleg rossz irany, leginkabb JavaScript/HTML5 szerintem, kesobb meg mondjuk PHP
a JavaScripttel gyorsan tudsz latvanyos eredmenyt elerni
esetleg flash, de azt en nem eroltetnem ha nem muszaj
(de szerintem ezt folytassuk a 'programozas' topicban pl, ide ez mar eleg OFF) -
doc
nagyúr
válasz
Jhonny06 #1388 üzenetére
en nem tartom jo valasztasnak a C++ -t mint elso nyelv...
nagyon szeretem, nagyon jo kis nyelv, de kapasbol ezzel kezdeni szerintem kicsit meresz
persze ha a kollega ur eltokelt, akkor idovel jol jarhat vele, csak tul sok ganyolasra ad lehetoseget, nem 'kenyszerit ra' a normalis programozasra
(egy kollegam, aki mar azert ismer par nyelvet, most tanul C++ -t, es bar igy 1 honap utan mar SOKKAL szebbek a kodjai mint az elejen produkalt irtozatos ganyolas, azert meg most is rengetegszer kell oldalbalokodni hogy 'nem arra heee')
-
Jhonny06
veterán
válasz
CoolBoy323 #1387 üzenetére
Én ezzel kezdtem, 0-ról. Nem mondom, hogy tökéletes, de nem rossz, szerintem nincs is nagyon jobb most a piacon. A C++ jó első nyelvnek, semmiképp se kezdenék Pascallal, meg hasonló halott nyelvekkel. Amúgy neten rengeteg forrás van, csak keresni kell, gondolom egyedül is megy. Ha megy az angol, akkor pláne előnybe vagy.
-
CoolBoy323
nagyúr
sziasztok!
szeretnék megtanulni programozni, és azt mondják az okosok, h C++-al érdemes kezdeni...
tudnátok ajánlani vmi irományt (akár online is lehet) amiből teljesen a 0-ról meg tudnám tanulni? semmi közöm a programozáshoz, szal vmi nagyon jól tanító könyv v vmi kellene!
köszönööööm
-
n00n
őstag
válasz
ArchElf #1383 üzenetére
Köszi, de sajnos ezt a hibát kapom:
/usr/include/qt4/QtCore/qfile.h: In function ‘void copy_feher()’:
/usr/include/qt4/QtCore/qfile.h:190:12: error: ‘virtual qint64 QFile::readData(char*, qint64)’ is protected
../mentesk/mainwindow.cpp:85:50: error: within this context
/usr/include/qt4/QtCore/qfile.h:191:12: error: ‘virtual qint64 QFile::writeData(const char*, qint64)’ is protected
../mentesk/mainwindow.cpp:87:56: error: within this context
make: *** [mainwindow.o] Error 1 -
ArchElf
addikt
Gyomorból (ellenőrzés nélkül):
int pg = 0;
qint64 BSIZE = 1024*1024*4; // 4 MB buffer
char * carray = new char[BSIZE];
while(!src.atEnd()){
qint64 readchars = src.readData(carray, BSIZE);
if (readchars <= 0) break; //valami hiba, vagy file vége
qint64 writechars = dst.writeData(carray, readchars);
if (readchars != writechars) break; //valami hiba
pg = pg + writechars;
dlg->setValue(pg);
qApp->processEvents();
}
delete carray;AE
-
n00n
őstag
void copy_feher()
{
QFile dst("idejonacel");
QFile src("forrashelye");
if(!src.open(QFile::ReadOnly) || !dst.open(QFile::WriteOnly)) return;
QProgressDialog *dlg = new QProgressDialog();
qint64 len = src.bytesAvailable();
dlg->setLabelText(QString::fromLocal8Bit("Mentés másolása folyamatban..."));
dlg->setWindowTitle(QString::fromLocal8Bit("Mentés másolása"));
dlg->setRange(0, len);
dlg->setCancelButton(0);
dlg->show();
int pg = 0;
QByteArray bytearray;
qint64 act;
while(!src.atEnd()){
bytearray = src.read(len / 100);
dst.write(bytearray);
act = bytearray.length();
pg = pg + act;
dlg->setValue(pg);
qApp->processEvents();
}
delete dlg;
}Átírtam így a másolást, így jobb? viszont hiába cserélem le a void-ot bool-ra és adok neki egy return true-t, nem jó valamiért.
Más: Qt-be hogy lehet azt megcsinálni, hogy a főablak fölé előugrik egy párbeszéd ablak, akkor a főablak "kiszürküljön", magyarán ne lehessen rajta nyomogatni pl a gombokat. Hogyan keresek erre ár. Eddig arra gondoltam, hogy "steal focus", de az más. Ötlet?
-
n00n
őstag
válasz
ArchElf #1376 üzenetére
Akkor szoktunk biztonsági mentést készíteni a fájlról, mikor már senki nem dolgozik vele. Így ilyenkor 100%, hogy nem változik.
A fájl maga 2,5 GB, de sok új változás (sokkal több mindent fogunk tárolni benne) miatt ez akár 3-4 Gb is lehet nem sokára. Ezt felnyomni egy pendrive-ra olyan 17-20 perc jelenleg. Rsync-kel remélem lecsökkenthető olyan 5 percre.
-
ArchElf
addikt
rsync binárisokkal is működik, de fontos, hogy a sync időtartama alatt a fájl ne változzon.
A legjobb megoldás az, ha az adatbázisról csinálsz egy backupot (az adatbázis saját motorjával, ha van neki ilyen) és azt szinkronizálod le. Ha nem tudsz backupot csinálni, akkor le kell választani, vagy lockolni az egész adatbázist a szinkronizálás időtartamára.Mondjuk backup legenerálása után csak akkor érdemes rsync-kel vacakolni hogy ha lassú hálózaton/eszközön akarod keresztülnyomni a fájlt (vagy ha extra nagy méretű, de kevés dolog változik benne).
AE
-
ArchElf
addikt
-
ArchElf
addikt
Ez attól is függ, mi változott a fájlban. Ha csak append jellegű a módosítás (pl logfájl) akkor egyszerű (maradékot a végére kell írni).
Amennyiveb viszont strukturálisan változik, akkor valami hash-es megoldás javasolt: pl. mint a torrent vagy edonkey protokollban - feldarabolni a fájlt virtuálisan x megabyte-os részekre és részenként hast-t készíteni rá. Ha változott a fájl akkor azokat a részeket kell átmásolni, amelyeknek a hash-e nem egyezik a korábbi változattal (ilyenkor nem a célfájlon célszerű ellenőrizni a hash-t hanem minden szinkronizációnál le kell tárolni az aktuálisat, hogy a következő szinkronizációnál a jelenlegi állapotot azzal lehessen összevetni (ehhez persze ehhez meg az kell, hogy a célfájl ne módosuljon időközben).AE
-
-
Jhonny06
veterán
Sziasztok!
C++ gyakornoki pozícióra mennyi tudással érdemes pályázni, illetve az egyetem hanyadik évében? (Úgy általánosan, persze cégtől függ, hogy ki mit vár el.)
-
n00n
őstag
Köszi mindkettőtöknek, így már gyorsabban fut. Ezzel el is készült életem első Qt / C++ alkalmazása. Bár a forráskódra már most sem vagyok büszke, nem ám később.
-
doc
nagyúr
valoszinuleg tul kicsi a blokkmeret, probald meg nagyobbal
csak ugy mellekesen: OSX-en a dmg image-bol vinyora par tiz masodperc alatt kibontja a komplett 8 GB telepitot. ugyanez pendrive-ra 2-3 ORA!
szoval ha ilyen alacsony szinten akarod csinalni, akkor fel kell keszulni erre-arra
de szerintem elso korben probald ki lenyegesen nagyobb blokkmerettel (mondjuk 1MB, vagy hasonlo)MOD: ArchElf na, ugyanarra gondoltunk
-
n00n
őstag
Lenne egy ilyen kódom:
void copy()
{
QFile dst("G:\\adat.dat");
QFile src("D:\\adat.dat");
if(!src.open(QFile::ReadOnly) || !dst.open(QFile::WriteOnly)) return;
QProgressDialog *dlg = new QProgressDialog();
qint64 len = src.bytesAvailable();
dlg->setLabelText(QString::fromLocal8Bit("Mentés másolása folyamatban..."));
dlg->setWindowTitle(QString::fromLocal8Bit("Mentés másolása"));
dlg->setRange(0, len);
dlg->setCancelButton(0);
dlg->show();
int pg = 0;
while(!src.atEnd()){
QByteArray bytearray = src.read(80000);
dst.write(bytearray);
qint64 act = bytearray.length();
pg = pg + act;
dlg->setValue(pg);
qApp->processEvents();
}
}Amíg vinyón másolok, addig elég gyors, kb egy 1.2 GB-s fájlt 1:15 alatt másol át, de, ha pendrivera másolok, akkor ezt borzasztóan lelassul. És nem a pendrive miatt, Total Commanderben szinte száguld ehhez képest. Mit lehetne tenni ez ellen?
-
doc
nagyúr
ajanlanam pl. az elobb emlegetett QFile-t
Qt fejlesztes kozben nyugodtan felejtsd el hogy az std namespace es az STL egyaltalan letezik
a Qt tisztabb, szarazabb, biztonsagosabb erzes, es meg az orrodat is tiszticcsaegyebkent tenyleg
jatekfejlesztesnel muszaj STL-re tamaszkodnom Qt helyett, valami borzalom hogy milyen korlatoltak az osztalyok, meglatszik rajtuk a sok evtized -
-
n00n
őstag
Akad egy kis problémám, valakinek ötlet?
ifstream Adat;
Adat.open("data/data.dat");
if (!Adat)
{
QMessageBox::information(this, "Hiba!", QString::fromLocal8Bit("Nem található adat fájl!"));
}
else
{
// ide kellene egy karakterről karekterre kiolvasó, ami addig olvassa az Egy nevű változóba a karaktereket még *-hoz nem ér, akkor áttér a Kettő változóra és odafolytatja még véget nem ér a fájl
Adat.close();
} -
n00n
őstag
Nem vált rá. Ne forgasd ki a szavaimat.
Csak kacérkodott a gondolattal. Megjelent ez a cikk és ezután egy interjúban kérdezték, hogy van-e esélye, hogy Qt-re váltanak, azt mondta Mark, hogy megeshet.
Macskás példán keresztül kezdi el az osztályokat magyarázni. Hogy vannak privát változói (életkora), meg publikus függvényei (életkor módosítás, életkor lekérése, !nyávogás!
) meg ilyenek. Egy másik helyen talált autós példák sokkal közelebb állnak hozzám.
-
n00n
őstag
Na tegnap kicsit utána néztem mindkettőnek, a Qt szimpatikusabb, plusz elég valószínű, hogy ez lesz a jövő.
Nem is véletlen, hogy az Ubuntu is kacérkodik a Qt-re váltás ötletével.
A 24 óra alatt könyv kb felét kiveséztem. Vannak pozitív tapasztalatok és negatívak is vele kapcsolatban. Van amit kifejezetten jól, szájbarágósan magyaráz, van amit azért nem visz túlzásba. Plusz ezek a macskás példák nekem se fekszenek.
-
n00n
őstag
Sziasztok!
Milyen GUI-val érdemes foglalkozni, ha platform független programot akarok írni? QT, GTK? Valami nagyon pehelysúlyú kellene. Ubuntu 11.10-en írnám meg és XP-n lenne használva.
-
doc
nagyúr
válasz
WonderCSabo #1342 üzenetére
ezekkel az a baj, hogy pont az objektumorientalt feladatok hianyoznak...
-
n00n
őstag
válasz
WonderCSabo #1342 üzenetére
Köszi, az első fele könnyű, de utánna már vannak számomra nehezebbek is.
-
n00n
őstag
válasz
Jhonny06 #1340 üzenetére
Kezdőnek azért nem nevezném magamat, inkább a haladó előtt egy kicsivel elhelyezkedő tudásúnak.
Egyébként neki estem a könyvnek. A 141. oldalon tartok, eddig nem sok újat mondott, de azok hasznosak voltak. Amit nagyon hiányolok a fejezetek végéről megírandó feladatok. Van néhány ilyen "módosítsa a kódrészletet így, meg így". De ezek elég gyenguszok.
Tudtok olyan oldalt, ahol egyszerűbbtől indulva folyamosan egyre bonyolultabb C++ programokra vannak példák?
-
n00n
őstag
válasz
proci985 #1338 üzenetére
Most kaptam kölcsön egy másik kollégától a 24 óra alatt szériás C++ könyvet. Hát eléggé fenntartással kezelem ennek a szériának a könyveit, de egyelőre nincs jobb, így belekezdek és, ha az első fejezetek (amikkel tisztában vagyok) nem tetszenek nem folytatom. Köszi a javaslatokat, csekkolom azokat is.
-
proci985
MODERÁTOR
az tényleg túlzás. Bjarnenek van egy másik könyve is, a Programming Paradigms and Principles in C++. Kezdőknek az egy fokkal jobb, de ott is érződik, hogy amerikában oldalra fizetik a szerzőt és néha szó szerint elveszik a részletekben (bevezetőt és a kezdeti éveket nyugodtan át lehet ugrani, egyenesen a hello wordig). viszont ha van sok időd, jó lehet, minden fejezethez van több oldalas önkontroll, hogy mit érdemes lekódolni.
Computerbooksnak volt egy programozzunk c++ nyelvenje, az tömör, viszont eléggé átgondolatlan a felépítése (kezdő abból nem fog megtanulni kódolni).
-
-
n00n
őstag
Köszi. Gyorsan átfutottam, nem tűnik rossznak.
Viszont most beszéltem egy kollégámmal, aki mondta, hogy van egy könyve, odaadta.
Ez az:
Bjarne Stroustrup: The C++ Programming Language Special EditionViszont erről azt olvastam, hogy inkább már haladó szintű programozóknak ajánlott. Szerintetek ennyi tapasztalattal neki állhatok vagy keresek valami kezdőbb nyelvezetűt?
-
n00n
őstag
Sziasztok!
Kerestem a fórumban és láttam, hogy volt már ilyen téma, de nem túl frissek a válaszok, így feltenném újból, ha nem probléma, hátha azóta változtak a dolgok.
Szeretnék megtanulni C++ nyelven programozni, ehhez milyen könyvet ajánlanátok? A könnyebb válaszoláshoz leírnám az eddig ismereteimet. Középiskolában tanultam 4 évig Turbo Pascalt, majd saját szorgalomból elkezdtem Python-nal foglalkozni. Kisebb játékokat, illetve programokat írtam, de semmi komoly. A főiskolán előző félévben tanultam C programozást. Ott az alapokat vettük át, illetve tömbök, függvények, rekurzió stb. (Objektum orientált szemléletet nem vettük). Idén a C#-ot fogjuk venni nagy bánatomra (tavaly még C++-t tanítottak, de azóta új tanár). Viszont az a nyelv egyáltalán nem érdekel. Linuxot használok lassan 7-8 éve, így valószínűleg azon is szeretnék programozni, így számomra egyértelmű választás a C++. Ezek alapján milyen könyvet ajánlotok? Szeretnék vele lehetőleg minden nap foglalkozni, hogy egy fél év után legalább olyan szintre elérjek, hogy bele tudjak bátran piszkálni egy-két nyílt forráskódú projekt fejlesztésébe tapasztalat szerzési jelleggel.
-
Jhonny06
veterán
válasz
Jester01 #1321 üzenetére
Mondjuk nem tudom, hogy mire kell felhívni a figyelmet, amikor a fordító szól érte és egyértelműen le se fut a kód, csak úgy, ha az x-et is konstansként deklaráljuk, akkor pedig már nem lehet trükközni. Sok ilyen dolog van a C-ben, ami egyértelműen kerülendő és észrevehető, ha másért nem, akkor azért, mert nem fut le.
-
proci985
MODERÁTOR
válasz
WonderCSabo #1324 üzenetére
sztornó, elnéztem.
na, akkor most nézem meg a hibaüzenetet.
ok, legegyszerűbb megoldás: hiányzó ; a második sor végén? ha nem az, akkor
"cannot convert from 'char **' to 'const char **'"
mégiscsak a const a hibás.
char** const y = &x működik
const char* x;
const char** y = &x;
szintén. -
proci985
MODERÁTOR
válasz
Jhonny06 #1311 üzenetére
izé, ezzel nem az a baj, hogy a második sor jobb oldala char típusú, a jobb oldalar meg char**?
egy char** meg persze hogy nem lehet egyelővé tenni egy charral. na és valszeg ezért panaszkodik a típuskonverzióra a compiler. a visual studio szokott adni errort is, abból is ezt elvileg ki lehetne bogarászni.
a const nem zavarhat be, az csak annyit jelenthet, hogy az y értéken keresztül az x nem megváltoztatható szvsz, legalábbis funkciólnál ez így van. egyébként meg ilyen kód szerintem valós esetben classon belül nem igazán fordulhat elő. ha ez nem így van, akkor is max azt jelenti, hogy a pointer értéke nem változtatható, de az se csinálhat compiler típus errort.
vagy a harmadik ötlet: ez így design szempointból szerintem minimum fura, minek constanssá tenni egy pointert, amikor class scopeon belül azért ennyire a dolgokat szerintem nem kell védeni (illetve ha kell az már bőven régen rossz, meg amúgy sem ér semmit mert úgyis kiszedhető ez a kódrész is, ha más hozzáfér), ha meg class scopeon kívülre akarja az ember használni, akkor úgyis kell egy funkció, akinél pedig egyszerűbb írni egy constantot a funkcióra. szóval értelme ennek így semmi.
-
Jester01
veterán
válasz
Jhonny06 #1317 üzenetére
Igen, ez már közelít az igazsághoz. A fenti kód önmagában még nem lenne baj, vagyis az, hogy az x tudja írni az y viszont nem, az még nem probléma, millió olyan eset van amikor különböző pointereken keresztül különböző elérésed van, például:
char c;
char* x = &c;
const char* y = &c;Ezzel semmi baj, x-en keresztül lehet írni, y-on nem.
A gond ott kezdődik, hogy az említett struktúra módot adna olyan konverzióra aminek során a const elveszik egy pointerből. Látszólag ugye itt éppen hozzáadódik és ez biztonságosnak tűnik, de valójában egy kiskaput nyit:
char* x;
const char** y = &x;
const char* z;
*y = z;
*x = 0;Itt a z pointerről leszedtük a const-ot és az x-en keresztül olyan címre írtunk amire nincs felhatalmazásunk. Ugye *y típusa const char* és z is ez, tehát a *y = z rendben van. Viszont mivel y=&x ezért most már x is ugyanoda mutat ahová z, csak x nem const vagyis *x írható.
Mégegyszer hangsúlyoznám, nem az a baj, hogy több pointer ugyanazt a címet különböző módon éri el, hanem az, hogy egy tetszőleges const pointerből írhatót lehetne varázsolni. (Persze egy cast-tal ezt még mindig meg lehet tenni de az már más kérdés.)
-
Jhonny06
veterán
Konkrétan az volt a kérdés (egy külföldi fórumon találtam) az interjún, hogy miért rossz, tehát rossz. Amúgy le se fordul a kód, ha kipróbálod, tehát tuti az. char** és const char** közötti konverzióról panaszkodik. Ezért próbálom megfejteni, hogy mi a magyarázat, a megoldás egyértelmű, csak nem sokat ér, ha nem értem, hogy miért.
-
Jhonny06
veterán
válasz
Jester01 #1316 üzenetére
Igazából azt nem értettem, hogy akkor mi is a hiba az eredetileg írt kóddal (lehet, hogy benne volt a válasz, csak nem értem):
char* x;
const char** y = &xTehát ha az y nem tudja dupla indirekcióval megváltoztatni azt az értéket, amire az x mutat (illetve címet, most mindegy), akkor követelmény, hogy az x se tudja megváltoztatni, azaz azt is konstansként kell deklarálni, nem? Tehát nem lenne értelme annak (illetve helytelen lenne), ha az y az x-en keresztül nem tudná megváltoztatni, az x viszont igen. Erre jutottam.
-
Jester01
veterán
válasz
Jhonny06 #1311 üzenetére
Itt ugye nem a pointer a konstans, hanem amire a legvégén mutat (dupla indirekció után), vagyis **y nem írható.
Ez például konstans mutató és teljesen szabályos, az y maga a konstans, vagyis y nem írható:
char** const y = &x;Ez is szabályos, itt az a konstans amire az y mutat, vagyis *y nem írható:
char* const *y = &x; -
Jhonny06
veterán
Ez a kód szerepelt egy junior c++ fejlesztő állás interjúkérdései között, hogy miért rossz:
char* x;
const char** y = &xGondolkoztam rajta, hogy konstans mutató nem kaphat új memóriacímet, de az inicializálásnál ez nem lehetne gond.
-
Hiftu
senior tag
Valami ilyesmit irnék main()-be.
Remélem nem irtam el semmit.
int main()
{
int i,j;
do
{
cout << " \n Tanulok szama: \t";
cin >> i;
}
while (i <= 0); //legalabb 1 tanulo adatat fel kellene vinni
tanulo* t = new tanulo[i]; //csinalunk tombot az adatoknak.
for (j=0;j<i;++j)
{
cout << "\n Nev: \t";
cin >> t[j].nev;
cout << "\n Jegy: \t";
cin >> t[j].jegy;
}
for (j=0;j<i;++j)
{
cout << "\n" << t[j].nev << "\t";
cout << "\n" << t[j].jegy << "\t";
}
cin.get();
cin.get();
delete[] t; //eldobjuk a lefoglalt memoriat
return 0;
} -
doc
nagyúr
válasz
Jester01 #1306 üzenetére
arrol nem beszelve hogy ugyanazt a ciklusvaltozot hasznalni az egymasbaagyazott ciklusokban, raadasul azokon belul meg szinten ugyanazzal a nevvel egy ujabb valtozot deklaralni...
azert vannak itt alapveto hianyossagok, szerintem elso korben nem artana gyorsan atfutni egy alapveto C-s tutorialtMOD: most latom, nincsenek is egymasba agyazva, csak baromi felrevezeto az indentalas
viszont a cikluson belul ugyanolyan nevvel masik valtozo, az megvan -
DrAk3
csendes tag
Sziasztok, abban kérném segítségetek, hogy van egy struktúra tömböm aminek ki kéne írnia azt az N adatot amit beviszek. De az a bajom, hogy az összes helyre a forciklus mindig ugyan azt az adatot rakja be. Mi lehet a baja?
#include <iostream>
#include <string.h>
using namespace std;
struct tanulo
{
char nev[25];
int jegy;
};
int main()
{
int i,j,y;
char x;
cout << " \n Tanulok szama: \t";
cin >> i;
for (j=0;j<i;++j)
{
tanulo j;
cout << "\n Nev: \t";
cin >> j.nev;
cout << "\n Jegy: \t";
cin >> j.jegy;
}
for (j=0;j<i;++j)
{
tanulo j;
cout << "\n" << j.nev << "\t";
cout << "\n" << j.jegy << "\t";
}
cin.get();
cin.get();
return 0;
} -
Jester01
veterán
ráadásul gyanítom, hogy olyankor az osztályt megsemmisíti, és
úgyúj példányt hoz létre a default copy construktorralÍgy van. Ha nem POD objektum, akkor valamilyen konstruktor hívásnak lennie kell, akkor is ha az std::copy használatával történik a másolás (csak az még lassabb is lehet, mivel előbb default konstruktor majd operator= hívás lesz).
-
proci985
MODERÁTOR
válasz
proci985 #1291 üzenetére
csak elszúrtam.
cout << hallgato->getAzonosito() << endl;
kell, mert itt már egy adott objektum pointerével lesz meghívva a függvény, és nem magával a listával.
egyébként emlékeim szerint volt erre valami egyszerűbb megoldás is.
WonderCSabo: a pointer a gyorsabb, emlékeim szerint Lakos a Large-Scale C++ SW Designben konkrétan adott adatokat is, hogy mennyivel (nem találom az oldalt). lehet olyan eset, hogy jobban megéri teljes objektumokat átadni, de szerintem ez nem olyan.
-
WonderCSabo
félisten
Ez igaz, viszont a dinamikus memóriakezelés miatt fragmentálódik a memória, az elemek elérése több erőforrásba kerül, sokkal több hibalehetőség van, stb. Fv. paraméterként meg érdemes referencia szerint átadni, és nem kell másolgatni semmit. Én nem mondanám, hogy minden esetben érdemes pointereket használni.
raadasul gyanitom, hogy olyankor az osztalyt megsemmisiti, es ugy peldanyt hoz letre a default copy construktorral, de ez csak tipp
Sztem meg inkább std::copy-val, vagy vmi ilyesmivel másolja át az adatokat.
Új hozzászólás Aktív témák
Hirdetés
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Napelem
- Egy nap a TCL-nél: érkeznek az új tévék!
- Mibe tegyem a megtakarításaimat?
- Bemutatkozott a Poco X7 és X7 Pro
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Sony MILC fényképezőgépcsalád
- PlayStation 5
- Projektor topic
- Sorozatok
- További aktív témák...
- Lenovo Thinkpad T14 üzleti i5-10310u 10th gen. 8-32Gb RAM 256GB-1TB SSD gar.
- CarPlay / Android Auto adapter meglévő Android alapú fejegységhez
- ÁRGARANCIA!Épített KomPhone Ryzen 7 5700X3D 32/64GB RAM RX 7800 XT 16GB GAMER PC termékbeszámítással
- Bomba ár! Lenovo X1 Yoga 2nd - i7-7G I 8GB I 256SSD I 14" WQHD Sérült I W11 I CAM I Garancia!
- BESZÁMÍTÁS! Dell Precision 5820 XL Tower PC - Xeon W-2123 112GB RAM 512GB SSD 1TB RX 580 8GB Win 11
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged