превращение не шаблонного класса в шаблон - PullRequest
0 голосов
/ 20 февраля 2012

У меня есть самодельная структура данных (например, связанный список), которая хорошо работает, но когда я создал класс, я сделал это, основываясь на строках, но теперь я хочу взять эту структуру данных и использовать ее для хранения другого себясделал тип данных.Я знаю, что это включает шаблоны (возможность взять рабочую структуру данных и применить к ней любой тип данных), но я на самом деле не работал с ними.

какие шаги я должен выполнить, чтобы превратить не шаблонкласс в шаблон класса?

Ответы [ 2 ]

2 голосов
/ 20 февраля 2012

то есть основные действия

  1. Переместите все определения методов вашего класса из .cpp в .h файл
  2. Поместить спецификации шаблона (template <class T>) перед всеми объявлениями и определениями
  3. Измените все спецификаторы имен классов на имена шаблонов, т.е. A::A(){} должно стать A<T>::A(){}
  4. Если требуется, измените имена вызовов методов на имена с параметрами типа
  5. Измените все записи предыдущего типа на имя параметра типа

может быть много других вещей, конечно.

2 голосов
/ 20 февраля 2012

Главное, что вам нужно сделать, это поместить спецификацию шаблона впереди:

template <class T>
class A {
  ...
};

Затем используйте T вместо вашего строкового типа.учитывайте при создании шаблонов, но это зависит от конкретной ситуации.

Вы будете указывать свой новый тип при использовании шаблона:

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