欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C++,文件和流, 析构函数和调用delete this

程序员文章站 2024-03-04 15:10:35
...

参考链接 点击打开链接

C++文件和流

标准库,fstream,iostream
ofstream 表示输出文件流,用于创建文件并写入信息
ifstream 表示输入文件流,用于读取文件信息
fstream 表示文件流,具有上述两种功能
void open(const char *filename, ios::openmode mode);
void close();
打开模式:

C++,文件和流, 析构函数和调用delete this

#include<fstream>
#include<iostream>
using namespace std;
int main()
{
        fstream SaveFile("file.txt");//创建文件file.txt
        SaveFile << "you may don't believe this.";
        ofstream outfile;//以写模式打开
        outfile.open("file.txt");
        int data[100];
        cin.getline(data, 100);
        outfile << data << std::endl;
        outfile.close();
        
        ifstream infile;//以读模式打开
        infile.open("file.txt");
        infile >> data;
        infile.close();
}

如果在类的析构函数中调用delete this, 会导致堆栈的溢出

delete 本质是为将释放的内存调用一个或多个析构函数,会形成无限递归,造成堆栈溢出
delete this;语句后,指向该对象的指针就是野指针了
a local object on the stack-局部变量存储在栈
相关标签: 文件流