- Októberi bevetésre indul a hardveralakulat
- Továbbfejlesztette az SP szériás, kompakt tápegységeit a Lian Li
- Itt van az ASUS legfrissebb, AMD platformra épülő mini PC-je
- Jegeli pénznyelő projektjét az Apple, az okosszemüvegben látják a jövőt
- Olcsónak ígérkező, madzagos egér jelent meg az ASUS ROG-os portfóliójában
- Apple asztali gépek
- Épített vízhűtés (nem kompakt) topic
- Milyen egeret válasszak?
- Egérpad topik
- Lenovo Legion Go: a legsokoldalúbb kézikonzol
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- Milyen belső merevlemezt vegyek?
- Vezetékes FEJhallgatók
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- iPad topik
-
PROHARDVER!
Új hozzászólás Aktív témák
-
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] -
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. -
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] -
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.
-
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] -
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 -
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
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- ÚJ ÁRU 09.25. !!! HP üzleti laptopok Elitebook, Probook, Zbook 8-13. gen gar.
- BESZÁMÍTÁS! 64GB (2x32) G.Skill Trident Z RGB 4000MHz DDR4 memória garanciával hibátlan működéssel
- AKCIÓ!!! Dell Latitude 5320 i3-1125G4 16GB 256GB magyarbill. 1 év garancia
- BESZÁMÍTÁS! MSI B450 R7 2700 16GB DDR4 512GB SSD RTX 2060 Super 8GB Rampage SHIVA Zalman 600W
- Új elekrtomos rollerek 2/3 áron és e-bike dobozban, 1 év garanciával:
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest