Pomoc s příkladem z Mistrovství v C++ – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Pomoc s příkladem z Mistrovství v C++ – C / C++ – Fórum – Programujte.comPomoc s příkladem z Mistrovství v C++ – C / C++ – Fórum – Programujte.com

 

poky
~ Anonymní uživatel
5 příspěvků
9. 8. 2009   #1
-
0
-

Dobrý den,
mohl bych Vás poprosit o pomoc při řešení cvičení? Zasekl jsem se na cvičení 8.6 (Mistrovství v C++,3.vydání):
"Napište šablonu funkce maxn(), která přijímá jako argument pole položek typu T a celé číslo reprezentující počet prvků pole a jež vrací jeho největší prvek. Šablonu otestujte v programu, který používá šablonu funkce s poli o šesti hodnotách typu int a čtyřech hodnotách typu double. Program by měl také obsahovat specializaci, která přebírá pole ukazatelů na char jako jeden argument a počet ukazatelů jako druhý argument a jež vrací adresu nejdelšího řetězce. Jestliže existuje více nejdelších řetězců, funkce vrátí adresu prvního nejdelšího. Otestujte specializaci pomocí pole o pěti řetězceových ukazatelích."
Ta první část je jasná, potřeboval bych jen "nakopnout" s tou specializací. Stačí prototyp specializace šablony.
Děkuji. O.Pokorný

Nahlásit jako SPAM
IP: 90.176.181.–
ondra.holub+1
Stálý člen
9. 8. 2009   #2
-
0
-

Záleží na tom, jak máte deklarovanou obecnou šablonu. Pokud to je

template<typename T>

const T& maxn(const T pole[], size_t delka);
tak specializace je
template<>

const char* const& maxn(const char* const pole[], size_t delka);
. Pokud to je
template<typename T>

T maxn(const T pole[], size_t delka);
tak specializace je pak
template<>

const char* maxn(const char* const pole[], size_t delka);
Pro praxi je jednodušší vyrobit netemplatovanou verzi funkce s konkrétními parametry a překladač jí dá přednost. Ale jako procvičení zhruba tak, jak jsem uvedl.

Nahlásit jako SPAM
IP: 85.207.23.–
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
10. 8. 2009   #3
-
0
-

To ondra.holub : Dobrý den. Měl jsem to tak, jen bez toho const a ono si to vybíralo pořád tu nespecializovanou šablonu. Díky moc. Ondra

Nahlásit jako SPAM
IP: 90.176.181.–
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, 17 hostů

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ý