我想创建我的第一个文件操作模板类。更具体地说,我开始使用。
template <typename T>
class Foo
{
public:
Foo();
~Foo();
std::vector<Foo<T>> vec;
void parsing(T&v,T&filename);
};
template<typename T>
inline Foo<T>::Foo()
{
}
template<typename T>
inline Foo<T>::~Foo()
{
}
template<typename T>
inline void Foo<T>::parsing(T&v, T&filename){
std::fstream file;
file.open(filename, std::ios_base::in)
if (plik.good()){
typename T::value_type tmp;
while (!plik.eof()){
plik >> tmp;
v.push_back(tmp);
}
file.close();
}
}
然后我想做那种初始化。
Foo<std::string> file;
file.parsing(vec,"file.txt");
我对模板很新,所以我有以下问题。
如何阅读/保存通用类型的文件?我的计划是读取文件,计算单词或数字,并将其推入Foo类型向量。然后在对矢量进行操作后,我想保存计数结果。
如何构造函数和变量和向量的初始化?在模板类中是否应该遵循任何特定规则?
对不起这种混乱的问题,但我不知道如何开始。 感谢所有回复。
答案 0 :(得分:0)
我认为你很亲密。您希望如何使用模块的示例看起来不错,它与功能原型不匹配
像这样更改parsing()
功能:
void Foo<T>::parsing(std::vector<T>& v, const std::string& filename);
关于你的问题:
Foo
的向量,而是T
的向量。