Я хотел бы создать класс, который имеет функцию, которая сохраняет отправленные ему данные в текстовый файл.Данные, которые могут быть переданы ему, могут быть любыми: std::string
, int
, double
, float
, unsigned int
и т. Д., А также могут быть: std::vector<T>
, T[]
,и std::vector<std::vector<T>>
, T[][]
.
Теперь, очевидно, если это массив, мне нужно будет выполнить итерацию по нему, чтобы отправить данные в текстовый файл.
Я думал оиспользуя шаблоны, но я не уверен, как сделать массивы.
Это путь?
class CMyClass
{
template<typename T>
void SaveData(T data);
void SaveData(std::vector<T> data);
void SaveData(std::string data);
void SaveData(T* data); // Perhaps I'll also need to pass in the size.
void SaveData(std::vector<std::vector<T>> data);
void SaveData(T** data);
};
Я думаю, что код для std::string
будеттакой же, как код для std::vector<T>
при условии, что T
является встроенным типом (например, int
или float
или что-то в этом роде).
И затем я пишу функции для каждого из SaveData(...)
соответственно?