Шаблон в заголовочном файле в C++
Тело шаблона в заголовке должно быть
видно компилятору в каждой единице трансляции,
где создают экземпляр шаблона, поэтому
его обычно кладут в .hpp, а не в .cpp.
Защита от повторного включения через
#ifndef / #define / #endif
предотвращает двойное определение макроса
и повторную вставку текста.
Запишем шаблон Box в box.hpp:
#ifndef BOX_HPP
#define BOX_HPP
template<typename T>
struct Box {
T value;
};
#endif
В main.cpp подключим заголовок
кавычками и выведем поле объекта:
#include <iostream>
#include "box.hpp"
int main() {
Box<int> slot{11};
std::cout << slot.value << "\n";
return 0;
}
Добавьте в box.hpp метод get,
возвращающий value. В main
создайте Box<int> с 2
и выведите результат get.