如何实现一个继承fstream的类

发布于 2024-11-09 21:18:31 字数 351 浏览 4 评论 0原文

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

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

Hey guys, im having problems when i want to create a class Called Files that uses fstream

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

Does anyone know which parameters should i use on the constructor?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

-柠檬树下少年和吉他 2024-11-16 21:18:31

不要重复默认参数。您的代码应该如下所示:

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

也就是说您可能需要考虑使用

Don't repeat the default parameters. Your code should look like this:

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

That being said you may want to consider using Boost.Iostreams if you want to define your own stream classes. Overriding all the correct methods from the standard streams is a pain.

你列表最软的妹 2024-11-16 21:18:31

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

Don't inherit from classes that doesn't have virtual destructors

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文