当前位置: 首页 > news >正文

C++组合通信

 

 

 

 

#include <iostream>
#include<vector>
#include<string>

using namespace std;

class AbstractFile{
	protected:
		string name;
	public: 
	    AbstractFile(string n){
	    	name=n;
	    } 
	    virtual void Display()=0; // 纯虚函数
		 
}; 
class File:public AbstractFile{
	public:
	
		File(string n):AbstractFile(n){}
		
		void Display(){
			cout<<name<<endl;
		}
};
class Folder:public AbstractFile{
	private:
		vector<AbstractFile *> objvec;  //迭代器 
	public:
		Folder(string n):AbstractFile(n){}
		void add(AbstractFile *t){
			objvec.push_back(t);
		}
		void Display(){
			vector<AbstractFile *>::iterator ivec; 
			cout<<name<<endl;
			for(ivec=objvec.begin();ivec<objvec.end();ivec++)
			   (*ivec)->Display();
		}
};
int main(int argc, char** argv) {
      Folder *root=new Folder("C:\\");
      File *pa=new File("a.txt");
      File *pb=new File("b.txt");
      Folder *paa=new Folder("aa");
      File *p1=new File("1.cpp");
      File *p2=new File("2.cpp");
      root->add(pa);
      root->add(pb);
      root->add(paa);
      paa->add(p1);
      paa->add(p2);
      
      root->Display(); //调用Display() 
      
      delete  root;
      delete pa ;
      delete pb ;
      delete  p1;
      delete  p2;
      delete  paa;
                     
      
	return 0;
}


 

 

 

相关文章:

  • 阿里数据库内核月报:2017年02月
  • Facebook 首席安全官建议对 Flash 设定死亡日期
  • 项目期复习:JS操作符,弹窗与调试,凝视,数据类型转换
  • 关于HEXO安装失败的解决方法
  • my sql(二)
  • pip install mysql-connector 安装出错
  • Navicat如何进行搜索筛选
  • java基础(五章)
  • JavaScript面向对象轻松入门之抽象(demo by ES5、ES6、TypeScript)
  • Asm.js的简单介绍
  • Android蓝牙基础框架使用详解
  • JDBC的异常
  • Hibernate(十六):Hibernate二级缓存
  • 函数计算-触发OSS来处理图片加水印和大小裁剪
  • 【Android Studio探索之路系列】之六:Android Studio加入依赖
  • 时间复杂度分析经典问题——最大子序列和
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • 【comparator, comparable】小总结
  • 5、React组件事件详解
  • Consul Config 使用Git做版本控制的实现
  • es6(二):字符串的扩展
  • ESLint简单操作
  • Java|序列化异常StreamCorruptedException的解决方法
  • JavaScript实现分页效果
  • JavaWeb(学习笔记二)
  • Shell编程
  • Travix是如何部署应用程序到Kubernetes上的
  • Vue--数据传输
  • 观察者模式实现非直接耦合
  • 回流、重绘及其优化
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 基于web的全景—— Pannellum小试
  • 前端知识点整理(待续)
  • 入门到放弃node系列之Hello Word篇
  • 时间复杂度与空间复杂度分析
  • 使用SAX解析XML
  • 线上 python http server profile 实践
  • 与 ConTeXt MkIV 官方文档的接驳
  • 1.Ext JS 建立web开发工程
  • Spring Batch JSON 支持
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • ![CDATA[ ]] 是什么东东
  • #{} 和 ${}区别
  • #pragma pack(1)
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • (3)(3.5) 遥测无线电区域条例
  • (4)Elastix图像配准:3D图像
  • (简单) HDU 2612 Find a way,BFS。
  • (南京观海微电子)——I3C协议介绍
  • (转)3D模板阴影原理
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • .aanva
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别