Шаблоны в C ++ - PullRequest
       21

Шаблоны в C ++

3 голосов
/ 15 ноября 2010

мы можем объявить функцию template в обычном классе без класса шаблона, или она всегда должна быть внутри template class?

Ответы [ 3 ]

2 голосов
/ 15 ноября 2010

можем ли мы объявить функцию шаблона в обычном классе без класса шаблона

Да, мы можем.Например,

class demo
{
   public:
   template <typename T>
   void func(const T& x) { 
      //do stuffs 
   }
};

int main()
{
   demo d;
   d.func<int>(5);
}

совершенно правильно

2 голосов
/ 15 ноября 2010

Да, у вас могут быть шаблонные функции и в не шаблонных классах, например ::100100

struct X {
    template<class T>
    void f(const T& t) {
        // ...
    }
};
0 голосов
/ 15 ноября 2010

Да, вы можете, но убедитесь, что ваше определение и объявление функции шаблона находится в заголовочных файлах. Если вы хотите узнать больше, почему это так или больше о шаблонах в целом, я могу порекомендовать вам эту книгу Шаблоны - Полное руководство

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...