Правильный способ вызвать шаблон функции в main (), имеющий ссылочные параметры в C ++ - PullRequest
0 голосов
/ 09 августа 2011

У меня есть шаблон, как показано ниже

    template<typename T>
T insert(T a[], int& n  ,const T& x)
{
    int i;
    for (i = n-1; i > 1 && x < a[i]; --i)
        a[i+1] = a[i];
    a[i+1] = x;
    ++n;
}

Как правильно вызвать его в main ()

1 Ответ

0 голосов
/ 27 декабря 2011

Я не уверен, что это даже правильно определено. Вы не пропали ::? Во-вторых, я не вижу определения шаблона или его имени. В-третьих, вы приписываете тип возврата T этой функции, но вы даже ничего не возвращаете.

правильный шаблон должен выглядеть следующим образом

template <typename T> class tMyExample
{
     public:
          tMyExample <T> () { // constructor code }
          insert (T a[], int &n, const T &x) { // your code here }
};

int main (void)
{
   tMyExample <int> MyExample;

   return 0;
}

Хорошо, мое определение шаблона - это просто минимум. Если вы не специализируете его или не добавляете реализации вне определения, вы попадаете в другую историю. Но объявление внутри функции (например, main) такое же: идентификатор шаблона:

Честно говоря, я никогда не использовал [] в параметрах, я использую указатели (нет необходимости в распределении, если вы используете массивы).

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