-
Fototrend
Új hozzászólás Aktív témák
-
VladimirR
nagyúr
azt jelenti, hogy csak a vele egy osztalyban levo eljarasok/fuggvenyek fernek hozza
hasznalata altalaban ugy nez ki, hogy a valtozok/fugvenyek (member-ek) megadasakor elejuk irod, hogy privat (vagy public, vagy protected, elobbihez mindenki hozzafer, utobbihoz az adott osztaly es annak ''orokosei'')
altalaban nem kell minden sor ele kiirni a lathatosagat, hanem valahjogy igy:
privat
valtozo
valtozo
fuggveny
public
valtoz
fuggveny
fuggveny -
VladimirR
nagyúr
az elso kerdesedre: igen, jol erted
a masodikra: nem az osztalynak, hanem a tagjainak van lathatosaga (ha jol tudom), es altalaban ugy szokas beallitani a lathatosagot, hogy a valtozok mind privat-ok, a fuggvenyek kozul pedig azok, amiket kivulrol kell majd hivni, azok pulic-ok -
Miracle
senior tag
nos, az, hogy csinaljatok meg, itt az email cimem nem kerdes. sosem csinaltam meg (szandekosan) senki mas hazi feladatat, es nem is szandekozom most elkezdeni, mert baromira nem birom az olyan embereket, akik ugy vegeznek el egy kurzust, hogy kozuk nincs az anyaghoz.
de ha konkret kerdesed van, akkor arra szivesen valaszolok akar en is, de ha korulnezel itt a forumon, akkor azt lathatod, hogy rengeteg topic indult mar, es rengeteg valasz is, es ennek joresze kerdesekre adott (gyakran tobb) valasz. hogy miert van ennyi? mert eleg soan jarunk erre, akik szeretnek segiteni az erdeklodoknek, probalkozoknak, esetleg kevesbe tapasztaltaknak. hogy neked miert nem valaszolt senki? azert, mert nyitottal hulyesegbol(kereso rlz) egy uj topicot(pedig van mar egy halom c++os topic, meg ,,gyors segitseg kellene'' is), a masodikkal meg ugyan azt a postot bevagtad egy masik topicba is. es raadasul nem is kerdest tettel fel(vagy iranymutatast, vagy informaciot, vagy akarmit segitseget kertel), hanem megkerted a kedves forumozokat, hogy csinaljak meg neked a feladat megoldasat. ezzel az a baj, hogy nem csak az latszik belole, hogy meg 1 percet sem foglalkoztal vele, hanem az is, hogy nem is akarsz 1 percet foglalkozni vele, neked egy kesz megoldas kell. ilyet itt szerintem nem fogsz kapni.
[Szerkesztve]értelmező késziszótár :: rekurzió --> lásd : rekurzió
-
Nedudgi
aktív tag
Virtual kulcsszóval azt jelezzük a fordítónak hogy az adott fv a leszármazott osztályban (várhatóan) felül lesz írva. Ezért hogy a függvény melyik implementációját kell használni az futásidőben dönthető el. Általában absztrakt osztályokban használják (persze lehet máshol is). Egy ilyen absztrakt osztályból nincs értelme létrehozni objektumot, de származtatni frankón lehet belőle.
It took the computational power of three Commodore 64s to fly to the moon. It takes a 486 to run Windows 95. Something is wrong here. -- SC sig file UBUNTU - KDE - Rock'n'Roll
-
Miracle
senior tag
az elottem szolohoz csatlakoznek: ezek a metodusok az inline kulcsszotol fuggetlenul SOSEM lesznek inlineositva, es a hivasuk is elegge koltseges, legalabbis a nem-virtualis fugvenyekhez kepest. es ha 1 osztalynak vannak virtualis fuggvenyei, akkor az osztaly peldanyainak merete sizeof(void*) -al noni fog.
[Szerkesztve]értelmező késziszótár :: rekurzió --> lásd : rekurzió
-
OddMan
őstag
Ne értsetek félre, én is C párti vagyok, de azért azt ne felejtsük el, hogy Pascal/Delphi-ben is lehet nagyon komoly programokat írni, pl.: az Imperium Galactica is Turbo Pascal 7.0-val készült, és a 16bit-es védett módot is kihasználta.''A szíved szabad! Légy bátor és kövesd!''
-
nagyúr
template <class T>
class Feltoltes
{
private:
vector<T> tarolo;
int vechossz;
public:
Feltoltes(int vh);
void feltolt_billentyuzetrol();
void feltolt_random();
}
Azt, hogy barmilyen tipussal veletlenszeruen fel lehessen tolteni egy vektort, eleg nehezen ertelmezem, hiszen a templatezett osztalynal tudnunk kellene, milyen parametereket allithatunk veletlenszeruen, stb.
A sablonparameter itt a template-kre utal. Keress ra a ''template'' szora, es meg fogod talalni a magyarazatat.while (!sleep) sheep++;
-
Jester01
veterán
Ez a kód olyan mintha a haverom írta volna Ész nélkül kihasználja a nyelvben lévõ lehetõségeket, de feláldozza az olvashatóságot és karbantarthatóságot. Kiváló példája annak, hogyan ne használjuk a template-eket, hacsak nem vagyunk zsenik.
Mindenesetre a dolog kb. a következõképpen mûködik:
Vektorokkal végez mûveleteket, ez gondolom nyilvánvaló. A Vector<T, N> N darab T típusú elemet tartalmaz. A VectorSum osztály az összeadás mûveletet reprezentálja.
Az elsõ összeadás operátor azt írja le, hogy két azonos elemtípusú és méretû vektor összeadható, és az eredménye ugyancsak ilyen tulajdonságú vektor lesz.
A második összeadás operátor azt mondja, hogy egy vektorösszeghez jobbról még hozzá lehet adni egy másik vektort is.
Az init és print függvények gondolom világosak.
A megvalósítandó mûveletek:
vektor + vektorösszeg: a vektorösszeg + vektor mûvelet párja, a jobb és bal oldal felcserélésével.
vektorösszeg + vektorösszeg: mint az elõzõ, csak most mindkét oldal vektorösszeg
számmal szorzás jobbról és balról: be kell vezetni egy új alapmûveletet a VectorSum mintájára, pl. így:
template<class T, long N, class V>
class ScaledVector
{
long factor;
const V &vector;
public:
ScaledVector(long f, const V &v) : factor(f), vector(v) {}
T operator[](long i) const {
return factor * vector[ i ];
}
};
Igényesebb kollegák a faktor típusát beadhatják template paraméternek, akkor majd pl. double típussal is lehet szorozni.
A Vector osztályba fel kell venni egy újabb overloadot az = operátorra, hogy ilyen ScaledVector osztályt is tudjon fogadni (ugyanúgy sima elemmásolás van benne).
Ezután már csak a szorzás operátorra kell egy overload, pl. így:
template<class T, long N>
inline ScaledVector<T,N,Vector<T,N> >
operator*(int f, const Vector<T,N> &v) {
return ScaledVector<T,N,Vector<T,N> >(f,v);
}
Illetve hasonlóképpen jobbról való szorzáshoz is.
És mivel ilyen ScaledVector objektumokat még össze is akarunk adni, hát ahhoz rá kell engedni a VectorSum-ot két ScaledVector-ra, imígyen:
template<class T, long N, class Left, class Right>
inline VectorSum<T,N,ScaledVector<T,N,Left>,ScaledVector<T,N,Right> >
operator+(const ScaledVector<T,N,Left> &l, const ScaledVector<T,N,Right> &r) {
return VectorSum<T,N,ScaledVector<T,N,Left>,ScaledVector<T,N,Right> >(l,r);
}
Egyszerû, nem igaz?
[Szerkesztve]Jester
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Kertészet, mezőgazdaság topik
- Robot fűnyírók
- Milyen switch-et vegyek?
- PlayStation 5
- Renault, Dacia topik
- Van, amit nehéz lett megtalálni a Google keresőjével
- Rossz üzlet az EV-kölcsönzés
- Motorola Moto G24 Power - hol van az erő?
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Milyen routert?
- További aktív témák...
- LG NanoCell 55NANO766QA Halvány píxel csík
- Philips 58PUS8545/12 1 ÉV GARANCIA Játék üzemmód
- Tyű-ha! HP EliteBook 850 G7 Fémházas Szuper Strapabíró Laptop 15,6" -65% i7-10610U 32/512 FHD HUN
- Bomba ár! HP EliteBook 840 G5 - i5-8G I 8GB I 128GB SSD I 14" FHD I HDMI I Cam I W10 I Gari!
- The Last of Us Part I Ps5