dobry den. Chci se zeptat jde nějak vytvořit šablona ( nebo něco ...) čím bych mohl, stejně tak jako opmocí typu T nadefinovat INT nebo nějakou CLASS, nedefinovat libovolné pole( prostě abych mohl ve třídě používat různě velká pole s různým počtem dimenzí, stejně tak jako typy.) předem díky za odpověd. Janek
Fórum › C / C++
Template - pole
To janek : Samozřejmě že to jde ;-) Nauč se pracovat s ukazateli a s operátory new a delete (v případě C malloc a free). Já sem to jednou implemetnvoal jako šablonu struktury ve který byl uloženej ten typ prvku pole a dva ukazatele na předchozí a následující prvek pole. pak sem měl třídu array kde sem měl metody append apod. stačí mít ukazatel například na aktuální prvek (strukturu) a například na začátek pole a pak už to jde samo ;-)
To janek : Ale jestli chceš vícerozměrný pole pak musíš jednotlivým prvkům pole (dalším rozměrům) měnit velikost alokovaný paměti (pokud budou ty další rozměry dynamicky alokovaný) V c je to funkce realloc.
...( prostě abych mohl ve třídě používat různě velká pole s různým počtem dimenzí, stejně tak jako typy.) předem díky za odpověd. Janek
Ppochopil som spravne ze by si chcel nieco co sa sprava ako lubovolne rozmerne pole ? Ak poznas dopredy pocet rozmerov tak s template parametrami je to jednoduche a nemusis ani nic dynamicky alokovat. Ak dopredu pocet rozmerov nepoznas, aj to sa da ale je to komlipkovanejse (ale to sa nerobi pomocou template parametrov)
Napr.:
template<class T, int m, int n>
class {
public:
T pole[m][n];
}l
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Template class dedi template class — založil vitamin
C++ template a podmínky — založil Jan
Template zlobi — založil koudis
Moderátoři diskuze