Можно ли заменить две аналогичные функции-члены на функцию шаблона? - PullRequest
1 голос
/ 02 декабря 2011

Например,

class A {
 public:
   void fun(Array a);
   void fun(Vector a);
   /* Most codes in these two functions are same. */
   /* Can certainly be merged into a template function if they were not member functions. */
}

Обратите внимание, что я надеюсь использовать обе эти версии fun () в классе А. Спасибо.

Ответы [ 3 ]

2 голосов
/ 02 декабря 2011

Даже если сам класс не является шаблонизатором, вы можете написать функцию-член, которая шаблонизирована так же, как вы бы написали шаблонную функцию, которая не была методом класса.

template <class myType >
myType func (myType a) {
 /* do something */;
}
0 голосов
/ 10 июня 2013

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

template <typename T>
void fun(T var) {}
0 голосов
/ 02 декабря 2011

Да, это возможно, см. этот ТАК вопрос.

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