std::basic_streambuf<CharT,Traits>::~basic_streambuf
virtual ~basic_streambuf(); |
Этот деструктор не имеет эффекта: члены этого basic_streambuf (указатели и локаль) уничтожаются в соответствии со стандартной последовательностью уничтожения объектов после возвращения из этого деструктора. Однако, поскольку он объявлен публичным виртуальным, он позволяет удалять объекты, производные от std::basic_streambuf с помощью указателя на базовый класс.
Параметры
(нет)
Пример
#include <fstream>
#include <iostream>
int main()
{
std::filebuf* fbp = new std::filebuf;
fbp->open("test.txt", std::ios_base::out);
fbp->sputn("Hello\n", 6);
std::streambuf* sbp = fbp;
delete sbp; // the file is closed, output flushed and written
std::ifstream f("test.txt");
std::cout << f.rdbuf(); // proof
}Вывод:
Hello
Отчеты об ошибках
Следующие отчеты об ошибках, изменяющие поведение, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Применено к | Поведение, опубликованное | Правильное поведение |
|---|---|---|---|
| LWG 54 | C++98 | эффект деструктора не был указан | указан как без эффекта |
См. также
создает объект basic_streambuf (защищённый член-функция) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/io/basic_streambuf/%7Ebasic_streambuf