如何实现一个继承表单fstream的类

时间:2011-05-27 05:56:11

标签: c++ fstream derived-class

嘿伙计们,当我想要创建一个使用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)
    };

有谁知道我应该在构造函数上使用哪些参数?

2 个答案:

答案 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)

不要从没有虚拟析构函数的类继承