[c++] pytanie o stale i szablony

0

Czytajac o szablonach w ksiazce "Thinking in C++" przeczytalem, ze mozna uzywac wartosci, ktore w czasie kompilacji sa stalymi dla pewnego szablonu, przekazujac je jako argumenty tego szablonu. Mam w zwiazku z tym pytanie: czy lepiej jako stalych uzywac jest argumentow szablonu, czy deklarowac stale w klasach i nadawac im wartosc w konstruktorze? Ktore rozwiazanie jest szybsze? Ktore jest zalecane? Jezeli chodziloby tylko o wzgledy estetyczne, to chyba lepiej definiowac stala w klasie, nie trzeba pozniej pamietac o dodatkowym argumencie szablonu.

Znacie jakies inne za lub przeciw stosowaniu ktoregokolwiek z tych dwoch rozwiazan?

0

Stałe w szblonach są po to abyś mógł tworzyć różne warianty klasy, struktury czy funkcji. Np. dana klasa:

template<typename T, int N> class Tablica
{
     private:
     T tab[N];
     public:
     ...
}
int main()
{
    Tablica<int, 10> a;
    Tablica<char, 20> b;
    ...
}

Stałe inicjowane w konstruktorze służą zupełnie do czegoś innego niż stałe określane w szblonie, więc nie chodzi tu o względy estetyczne.
Uzywając stałych możesz mieć wyłącznie jeden wariant danej klasy w całym programie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1