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

参考链接 点击打开链接

C++文件和流

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

#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-局部变量存储在栈

猜你喜欢

转载自blog.csdn.net/shidamowang/article/details/80109811