嘿伙计们,当我想要创建一个使用fstream的类Called文件时,我遇到了问题
#include<iostream>
#include<fstream>
class Files:public fstream {
public:
Files(const char* s,ios_base::openmode mode = ios_base::in | ios_base::out):fstream(s,ios_base::openmode mode = ios_base::in | ios_base::out)
};
有谁知道我应该在构造函数上使用哪些参数?
答案 0 :(得分:3)
不要重复默认参数。您的代码应如下所示:
#include<iostream>
#include<fstream>
class Files : public std::fstream {
public:
Files(const char* s,
std::ios_base::openmode mode = ios_base::in | ios_base::out)
:std::fstream(s, mode)
{}
};
话虽如此,如果您想定义自己的流类,可能需要考虑使用Boost.Iostreams。从标准流中覆盖所有正确的方法是一种痛苦。
答案 1 :(得分:-3)
不要从没有虚拟析构函数的类继承