Я хотел бы создать класс, который имеет функцию, которая сохраняет данные, отправленные в это в текстовый файл. Данные, которые могут быть переданы в него, могут быть любыми, например std :: string
, int
, double
, float
, ] unsigned int
и т. д., а также может быть: std :: vector
, T []
и std :: vector
, 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
является встроенным типом (например, int
или float
или что-то в этом роде).
И затем я пишу функции для каждого из SaveData (...)
соответственно?