#include <iostream>
#include <list>
#include <string>
#include <algorithm>
#include <vector>
using namespace std;
// 文件(普通文件、目录)基类
class IFile
{
public:
virtual ~IFile()//虚析构,用于继承类析构
{}
virtual void show() = 0; // 其他操作
virtual void add(IFile *) = 0;//添加文件夹、文件
virtual void remove(IFile *) = 0;//删除文件夹、文件
virtual list<IFile*>* getChild() = 0;// 获取列表
virtual string getName() const = 0;
};
// 普通文件
class File:public IFile
{
public:
File(string name)
{
this->name = name;
}
string getName() const
{
return name;
}
virtual void show()
{
cout << name << endl;
}
virtual void add(IFile *)
{
return;
}
virtual void remove(IFile *)
{
return;
}
virtual list<IFile*>* getChild()
{
return NULL;
}
private:
string name;
};
// 目录 文件夹
c
C++类 用组合模式 写文件目录
最新推荐文章于 2024-06-28 17:03:48 发布