首页 > 其他分享 >11.6-11.12总结

11.6-11.12总结

时间:2023-11-11 15:11:07浏览次数:30  
标签:总结 cout 11.12 11.6 AbstractFile fileName list element void

include

include

include

using namespace std;

class AbstractFile {
public:
virtual void add(AbstractFile* element) = 0;
virtual void remove(AbstractFile* element) = 0;
virtual void display() = 0;
};

class VideoFile : public AbstractFile {
private:
string fileName;
public:
VideoFile(string fileName) {
this->fileName = fileName;
}
void add(AbstractFile* element) {
cout << "VideoFile:add -> " << this->fileName << endl;
}
void remove(AbstractFile* element) {
cout << "VideoFile:remove -> " << this->fileName << endl;
}
void display() {
cout << "VideoFile:display -> " << this->fileName << endl;
}
};

class TextFile :public AbstractFile {
private:
string fileName;
public:
TextFile(string fileName) {
this->fileName = fileName;
}
void add(AbstractFile* element) {
cout << "TextFile:add -> " << this->fileName << endl;
}
void remove(AbstractFile* element) {
cout << "TextFile:remove -> " << this->fileName << endl;
}
void display() {
cout << "TextFile:display -> " << this->fileName << endl;
}
};

class ImageFile :public AbstractFile {
private:
string fileName;
public:
ImageFile(string fileName) {
this->fileName = fileName;
}
void add(AbstractFile* element) {
cout << "ImageFile:add -> " << this->fileName << endl;
}
void remove(AbstractFile* element) {
cout << "ImageFile:remove -> " << this->fileName << endl;
}
void display() {
cout << "ImageFile:display -> " << this->fileName << endl;
}
};

class Folder :public AbstractFile {
private:
list<AbstractFile> _list;
string fileName;
public:
Folder(string fileName) {
this->fileName = fileName;
_list = new list<AbstractFile>;
}
~Folder() {
if (_list != NULL)
{
while (_list->empty()) {
delete (_list->begin());
_list->erase(_list->begin());
}
delete _list;
}
}
string getFileName() const {
return fileName;
}
void add(AbstractFile
element) {
cout << "Folder:add";
element->display();
_list->push_back(element);
}
void remove(AbstractFile
element) {
cout << "Folder:remove";
element->display();
_list->remove(element);
}
void display() {
if (_list != NULL) {
list<AbstractFile>::iterator it = _list->begin();
while (it != _list->end()) {
(
it++)->display();
}
}
}
};

int main() {
AbstractFile *obj1, *obj2, *obj3, *obj4;
Folder *plate1, *plate2;

obj1 = new ImageFile("ImageFile");
obj2 = new TextFile("TextFile");
plate1 = new Folder("folder1");
plate1->add(obj1);
plate1->add(obj2);
cout << "-------------plate1中文件内容-----------------" << endl;
plate1->display();

cout << "------------------------------" << endl;
obj3 = new VideoFile("VideoFile");

plate2 = new Folder("folder2");
plate2->add(obj3);
cout << "-------------plate2中文件内容-----------------" << endl;
plate2->display();
cout << "------------------------------" << endl;
plate1->remove(obj1);
cout << "-------------plate1中文件内容-----------------" << endl;
plate1->display();

}

标签:总结,cout,11.12,11.6,AbstractFile,fileName,list,element,void
From: https://www.cnblogs.com/XiMenXve/p/17825929.html

相关文章

  • Ecplise导入Maven项目总结
        最近做项目,需要eclipse中导入maven项目,需要一些配置,总结如下:前提:   电脑中安装了Maven并且已经在Eclipse中加入了Maven插件。   Eclipse中配置好了能运行的Tomcat。1、在Eclipse中点击"File"->Import->Maven,选择ExistingMavenProjects   2、选择你......
  • 2023-2024-1 20231327《计算机基础与程序设计》第7周学习总结
    学期(2023-2024-1)学号(20231327)《计算机基础与程序设计》第7周学习总结作业信息课程<班级的链接>(2023-2024-1-计算机基础与程序设计)要求<作业要求的链接>(2023-2024-1计算机基础与程序设计第7周作业)目标<了解并使用循环结构>作业正文https://i.cnblogs.com/p......
  • 2023-2024-1 20231302 《计算机基础与程序设计》第七周学习总结
    作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第七周作业这个作业的目标数组与链表、基于数组和基于链表实现数据结构、无序表与有序表、树、图、子程序与参数作业正文https://www.cnblogs......
  • 2023-2024-1 20231416《计算机基础与程序设计》第7周学习总结
    作业信息这个作业属于哪个课程(https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP)这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK07这个作业的目标《计算机科学概论》第8章《C语言程序设计》第6章作业正文 https://www.cnblo......
  • Appscan使用方法总结
    一、典型流程和术语介绍A. 新建一个扫描,并为这个扫描选择一个扫描模板。扫描模板:包含用户自定义扫描参数或者是工具默认参数的集合,目的是方面用户快速配置扫描参数。B. 打开配置向导并选择Web应用扫描和WebService扫描中的一种。注意:Appscan在安装了GSC(通用服务客户端)组件的环......
  • 改善Go语言编程质量的50个有效实践,技能落地总结50个高效Go程序设计技巧
    改善Go语言编程质量的50个有效实践,技能落地总结50个高效Go程序设计技巧 慕课专栏:《改善Go语言编程质量的50个有效实践》Go语言是Google大牛团队(RobertGriesemer、RobPike以及KenThompson)设计的一种静态类型、编译型编程语言,支持垃圾回收和轻量级并发,它于2009年11月诞......
  • 正则表达式总结
    正则表达式总结正则表达式在线测试https://c.runoob.com/front-end/854/1.通用概念是什么?正则表达式是编程语言中的通用模式配置语法不同编程语言,使用大同小异。英语:regex,grep通用概念1.普通字符2.特殊字符(元字符) 特殊含义的字符 .表示任意字符,除了换行符 ^......
  • 2023-2024-1 20231402《计算机基础与程序设计》第7周学习总结
    2023-2024-120231402《计算机基础与程序设计》第7周学习总结这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第7周作业这个作业的目标自学计算机科学概论第8章,《C语言程序设计》第6章 教材学习内容......
  • #2023-2024-1 20231308 《计算机基础与程序设计》第七周学习总结
    2023-2024-120231308《计算机基础与程序设计》第七周学习总结作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第七周作业这个作业的目标自学计算机科学概论第8章《C语言程序设计》第6章作......
  • Js选择器总结
    Js选择器总结 一、原生JS选择器#JS选择器常用的有getElementById()、getElementsByName()、getElementsByTagName()、getElementsByClassName()、querySelector()、querySelectorAll()A:getElementById(ID):返回对指定ID的第一个对象的引用,如果在文档中查找一个特定的元......