shared_dtor的另一种策略

#include <iostream>
#include <fstream>
#include <memory>
#include <cstdio>

using namespace std;

class FileDtor{
private:
    string filenames;
public:
    FileDtor(string& name): filenames(name) { }
    void operator() (ofstream* fp){
        fp->close;                      //close file
        std::remove(filenames.c_str());//delete file
    }
};//这个程序的标题是其他策略,那就是行为像函数的类呗

void main()
{
    shared_ptr<ofstream>fp(new ofstream("tmpFile.txt"),
        FileDtor("tmpFile.txt"));
}

猜你喜欢

转载自blog.csdn.net/qq_24328911/article/details/51405978