C++ šablony – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

C++ šablony – C / C++ – Fórum – Programujte.comC++ šablony – C / C++ – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
Kenvelo+2
Super člen
26. 11. 2018   #1
-
0
-

Zdravím najel sem na téma šablony a chtěl sem se zeptat proč u všech příkladů co sem našel se značí 

<class T >  nebo <class T1, class T2>

nepochopil sem značení toho T ... a proč zrovna T má to nějaký bližší důvod ? Díky

Nahlásit jako SPAM
IP: 89.177.200.–
Díky bohu, že počítače vymysleli muži. Kdyby to byly ženy, tak binární soustavu reprezentují jedničky, nuly a "možná"
Řešení
KIIV
~ Moderátor
+43
God of flame
26. 11. 2018   #2
-
0
-
Vyřešeno Nejlepší odpověď

Muzes si to pojmenovat jak chces. To T znamena pravdepodobne neco jako Template nebo Type.

Je to pomerne zazita vec, takze kdyz clovek nekde vidi  T, tak to ma v zasade neco spolecneho s templatama. Neco jako i pro indexy.

Nahlásit jako SPAM
IP: 46.135.105.–
Program vždy dělá to co naprogramujete, ne to co chcete...
jerry
~ Anonymní uživatel
504 příspěvků
26. 11. 2018   #3
-
0
-

#2 KIIV
když ještě neexistovaly Templates a Generics někde na konci 80. let v C++ tak si dělal třeba tohle:

single secti(single a, single b){ return a+b }

double secti(double a, double b){ return a+b }

je to blbej příklad ale názornej... no a pak někoho napadlo že se napíše

T secti(T a, T b){ return a+b}  a typ T se určí dynamicky až v době běhu programu neboli při výpočtu...takže ti stačilo napsat jenom jednu funkci/objekt atd... nevýhoda byla že teplate musí bejt CELEJ napsanej v .h souboru a to je blbý a taky ho kompilátor přeloží tak, že pro každej "problém" udělá v paměti jednu kopii - to je týká hlavně objektů, a tak eště lidi vymysleli Generic a ten se dá deklarovat/definovat jak v .h tak i v .cpp souborech a navíc se používá jen jedna kopie v paměti, která řídí vše  - teda ono je to složitější ale tak nějak pro začátek ti to stačí :) Teplates používej až se pořádně naučíš programovat :), některý problémy se bohužel nedají už dnes řešit jinak než pomocí teplates a navíc existují problémy, které nejdou napsat jinak než kombinací Templates a Generics.... je to docela složitý na hlavu obzvlášť ve vlkejch projektech a proto se obojí používá spíše v knihovních procedurách ...

Nahlásit jako SPAM
IP: 2a00:1028:83be:235a:ede4:866d:fff6:847c...–
KIIV
~ Moderátor
+43
God of flame
26. 11. 2018   #4
-
0
-

#3 jerry
s generic sem se teda jeste nesetkal, ale to bude asi tim, ze to bude zase nejaka vychytavka microsoftu mimo jakykoliv standard C++. Tj. jakmile to clovek pouzije, uz to nikdy nezkompiluje jinde.

Ale ano jak se pouzijou nejake slozitejsi templaty, tak kod dokaze pekne nabobtnat. Obzvlaste na jednocipech je to hodne neprijemne. Ale aspon to pak clovek neprehani.

Jinak technicky vzato jde implementaci template udelat v cpp souboru, ale musi se udelat veskere instanciace vsech typu, pro ktere to clovek chce pouzit. Coz je obvykle narocne az nemozne, a pri prvnim pouziti se narazi na neco, na co to neni pripravene. Proto to nema smysl delat nebo se o to spis pokouset.

Pak je jeste potreba davat bacha na pretezovani funkci a zaroven jeste templaty. Spolehlive se vybere jina implementace nez by kdo chtel. Proste takovejm saskarnam je zase lepsi se uplne vyhnout.

Nahlásit jako SPAM
IP: 46.135.105.–
Program vždy dělá to co naprogramujete, ne to co chcete...
jerry
~ Anonymní uživatel
504 příspěvků
27. 11. 2018   #5
-
0
-

#3 jerry
tady

http://www.ecma-international.org/flat/publications/files/ECMA-ST/ECMA-372.pdf

a nejposlednější

http://www.open-std.org/jtc1/sc22/wg21/

ale při normální práci to asi nikno moc nevyužije ....

Nahlásit jako SPAM
IP: 2a00:1028:83be:235a:2c8e:782f:5b2c:5d74...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 12 hostů

Podobná vlákna

Sablony #2 — založil Gadael

WebSpell Sablony — založil Alterna

Naprogramovani sablony — založil putti

šablony a ukazatele — založil liamlim

šablony u tříd — založil Kuge

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý