Hirdetés
- iPhone topik
- VoLTE/VoWiFi
- Milyen okostelefont vegyek?
- One mobilszolgáltatások
- Vivo X300 Pro – messzebbre lát, mint ameddig bírja
- Samsung Galaxy A57 - kecses test, lusta lélek
- Xiaomi Mi 9T Pro - tizenegyes!
- OnePlus 15 - van plusz energia
- Külföldi prepaid SIM-ek itthon
- Távozik az Apple vezérigazgatója
-
Mobilarena

Ú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
Hirdetés
● olvasd el a téma összefoglalót!
- Projektor topic
- 5.1, 7.1 és gamer fejhallgatók
- Kínai és egyéb olcsó órák topikja
- Luck Dragon: Asszociációs játék. :)
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Apple MacBook
- Autós topik
- iPhone topik
- Crimson Desert
- Graphics: Telefonvásárlási kálváriám....avagy clickbait cím: Horror a hardveraprón
- További aktív témák...
- Acer Nitro 15 gamer laptop! -i7 9750H, RTX 2060 6gb, 32gb DDR4, 500gb SSD, 1tb HDD
- 3-in-1 PRÉMIUM USB-C HUB /Samsung Dex, MacBook, Surface, Chromebook ,Huawei,Motorola
- Üvegfólia,hidrogél fólia: iPhone ,Honor,Google Pixel,,Nothing Phone,Motorola, Samsung telefonokhoz
- 2TB HDD 100/100 - Több darab!
- Gigabyte AORUS 16X - Core i9 14900HX - 32gb ram - RTX 4090 (175W) 1TB SSD + 2027 januárig gyári gar
- GAMER PC! Ultra 7 265 / RTX 5070 / 32GB DDR5 / 1TB NVMe / 750w Gold / BeszámítOK !
- Apple iPhone 17 Pro 256GB,Átlagos,Dobozaval,12 hónap garanciával
- Telefon felvásárlás!! Samsung Galaxy A13/Samsung Galaxy A33/Samsung Galaxy A53
- 27% Számlával! ASUS ROG Loki 1000W 80 PLUS Platinum SFX Tápegység!
- AKCIÓ! MSI Cyborg 15 A12VF FHD GAMER notebook - i5 12450H 16GB DDR5 512GB SSD RTX 4060 8GB
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

É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.
.



