如何实现继承表单fstream的类

how to implement a class that inherits form fstream

本文关键字:继承 表单 fstream 的类 实现 何实现      更新时间:2023-10-16

嘿,伙计们,当我想创建一个使用fstream 的名为Files的类时,我遇到了问题

#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)
    };

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

不要重复默认参数。你的代码应该是这样的:

#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,如果您想定义自己的流类。从标准流中重写所有正确的方法是一件痛苦的事。

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