std::istream子类:删除析构函数中的streambuf



我正在编写一个std::istream子类,它使用自己的std::stringbuf子类

class decostream : public std::istream
{
public:
    decostream(std::istream * input)
        : std::istream(new decostreambuf(input))
        {
        }
    ~decostream() { delete rdbuf(); }
}

这个有效吗?根据std::istream文档,很难知道当istream被销毁时streambuf是否仍然有效。

#include <istream>
#include <sstream>
class decostreambuf : public std::stringbuf {
public:
    decostreambuf(std::istream* input) {
        //...
    }
};
class decostream : public std::istream {
public:
    decostream(std::istream* input) : sb(input), std::istream(&sb) {
        //...
    }
private:
    decostreambuf sb;
};

相关内容

  • 没有找到相关文章

最新更新