- Milyen billentyűzetet vegyek?
- AMD Navi Radeon™ RX 9xxx sorozat
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- NTFS, exFAT, FAT32 – Melyiket válaszd és miért?
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Gaming notebook topik
- Steam Deck
- OLED TV topic
- Multimédiás / PC-s hangfalszettek (2.0, 2.1, 5.1)
- Gigabyte alaplap topik
Új hozzászólás Aktív témák
-
Hiftu
senior tag
Ez a téma elég messzire vezet. Szerintem két különálló részként kellene tekinteni egy kódra:
1, objektumok létrehozásra és kapcssolatok felépítése
2, business logika megvalósítása az objektumokkal.Ha lehetséges, akkor egy objektum kapja meg paraméterként a vele együttműködő objektumokat.
(nem minden esetben megoldható.) Ezáltal kisebb lesz a függőség és flexibilisebb a kód.
A létrehozás közben pedig kisebb lesz az esély a katasztrófákra. -
Hiftu
senior tag
Közben kipróbáltam. Segmentation fault-ot írt ki.
A b.push_back(i)-re hasalt el.
Akkor ötletem nem volt rossz, csak az eredménye: az a inicializálásakor még nincsen b vectorod.Megoldás #1:
Felcseréled az a és b változó sorrendjét.
Ez egy elég gyenge megoldás, több változó esetén szívhatsz vele.Megoldás #2:
Az összefüggő adatok inicializálását kiveszed az inicializálási listából (de szarul hangzik magyarul)
és berakod a constructor függvénytörzsébe. -
Hiftu
senior tag
Gyanítom, hogy 0-t kapsz a b vector méretére, különben nem írtad volna. Ha jól gyanítom, akkor az adattagok létrehozása a deklarálás sorrendjében történik. Az elképzelés em az, hogy "a" inicializálása után meghívodik a vector default constructora, ami üresre állítja azt.
-
Hiftu
senior tag
válasz
Hunmugli #3817 üzenetére
Elmondom, miért nem ajánlott ilyesmiröl még gondolkodni sem.
1, nem tudod lokálisan elemezni a függvényt. Egy csomó külsö függösége lenne.
2, a külsö függöségei gyakorlatilag láthatatlanok lennének.
3, mások számára olvashatatlan lenne a kód (a való életben ez fontos). Keresnék a változókat lokálisan, paraméterként, adattagként, globálisnak és sehol nem találnák. Ez bujócskának jó lenne, de szoftvernek rossz.
4, hála istennek a c++ nem enged meg ilyet.Megoldás: használj paramétert és minden rendben lesz.
-
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;
}
Ú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!
- Apple iPhone 14 Pro 128GB, Kártyafüggetlen,
- Beszámítás! Sony PlayStation 5 825GB SSD lemezeskonzol extra játékokkal garanciával hibátlan működés
- BESZÁMÍTÁS! Gigabyte B760M i5 13400F 16GB DDR4 512GB SSD RTX 3070 8GB Pure Base 500DX fehér 650W
- Azonnali készpénzes Intel i3 i5 i7 i9 12/13/14 gen processzor felvásárlás személyesen / csomagküldés
- Apple iPhone 15 Pro Max - Natural Titanium - Újszerű karcmentes állapotban! 100% akku! Gyári garis!
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest