两层多态,四个类
来源:互联网 发布:ios wkwebview js 编辑:程序博客网 时间:2024/05/20 12:23
花了一上午的时间,写了四个类,主函数中用了两层多态,按Ctrl+F5打印数据的一瞬间,心里别提有多激动了。 C++是我大学学的第一门专业课,
也是期末考试时分数考的最多的一门专业课,自从大二天天熬夜写数据结构代码后,感觉激情一下子就消失了,之后就很少再拼命写C++程序了。大三开始实习后,
用的是Linux ,C和shell脚本语言,基本上项目从来没用过C++,现在又在熟悉的VS2008环境下编写cin,cout ,一下又激起了我对C++的兴趣和热情。
前几天主要在复习C++ Primuer Plus 中的面向对象编程 ,因为这次的项目比较大,有一个月的时间来让我搭框架,目的是做的更加有通用性,减少以后的对接工作量。
首先工具类有个基类 ,叫工具基类
有两种类,一种是工具类,另一种是流程类首先工具类有个基类 ,叫工具基类
/*工具基类*/class upBase{public:virtual void gongju() {}/*构造函数声明和定义upBase*(); 仅仅只是声明upBase() {} 定义*/upBase(){} //默认构造函数};
工具基类派生出一个工具子类one
// 工具类型one class upBaseFtp:public upBase{public: /*带参数的构造函数*/upBaseFtp(int st):upNum(st) { }void gongju(){cout <<"this is a Ftp gongju!"<<endl; }upBaseFtp() {} //默认构造函数int upNum;};
其次是流程基类:
// 流程基类class Access{public:Access() {}/*带参数的构造函数:pupBase(_p) 和 pupBase = _p*/virtual void upLoad() { }void printAccess(){cout<<"this is accessBase!"<<endl;}/*基类类型成员*/upBase *pupBase;};
继承流程基类的流程类One:
/*对接流程类one*/class AccessOne:public Access{public: /*派生类的构造函数*/AccessOne(upBase *_p):Access(_p) { } AccessOne();void upLoad (){cout<<"this is AccessOne!"<<endl;}void printGongJu(){cout<<"print the gongju:"<<endl;pupBase->gongju();}~AccessOne (){delete pupBase;}};
最后是主函数:
/*main函数中实现两层多态*/int main(){ /*声明对接类One,调用工具类Ftp*/upBaseFtp *pFtp=new upBaseFtp(322);AccessOne *pAccessOne =new AccessOne(pFtp);/*调用对接类one和工具类one 的函数*/pAccessOne->upLoad();pAccessOne->printGongJu(); cout<<endl;delete pAccessOne;getchar();return 0;}
派生类的构造函数和基类的构造函数以及虚函数,这是C++实现动态绑定也即多态的基础,也是其核心。
啊,不会的知识点太多太多了,每天打鸡血一样的努力,也要学习好多天啊。 大学逃课的报应来的太快,只能现在拼命努力弥补了。
/*main函数中实现两层多态*/int main(){ /*声明对接类One,调用工具类Ftp*/<span style="white-space:pre"></span>upBaseFtp *pFtp=new upBaseFtp(322);<span style="white-space:pre"></span>AccessOne *pAccessOne =new AccessOne(pFtp);<span style="white-space:pre"></span>/*调用对接类one和工具类one 的函数*/<span style="white-space:pre"></span>pAccessOne->upLoad();<span style="white-space:pre"></span>pAccessOne->printGongJu(); <span style="white-space:pre"></span>cout<<endl;<span style="white-space:pre"></span>delete pAccessOne;<span style="white-space:pre"></span>getchar();<span style="white-space:pre"></span>return 0;}
0 0
- 两层多态,四个类
- Unity基础四个类
- a的四个伪类
- php四个常用类封装
- php的四个基本类
- php四个常用类封装
- php四个常用类封装
- symbian四个主要的应用软件框架类
- 四个主干类的介绍 ( Android )
- CMainFrame类的四个成员函数
- 十、Android关于蓝牙四个常用类
- android开发之 Wifi的四个类
- C++类默认生成的四个函数
- String类的四个默认成员函数
- QImage、QPixmap、QBitmap、QPicture 四个类
- [c++基础] 类的四个基本函数
- CMainFrame类的四个成员函数
- CMainFrame类的四个成员函数
- android xml 的解析
- ssh 无密码验证 及 ssh localhost 仍然需要密码的解决方案
- Eclipse EGit - Pull Failed Dirty Worktree
- JS实现文字滚动效果
- C#语法之流程控制结构
- 两层多态,四个类
- Android客户端与后台服务器的数据交互
- Linux常用命令详解(四)_文件过滤分割、统计、kill
- Nginx 页面缓存指令
- Android总结篇系列:Activity启动模式(lauchMode)
- XML和JSON基础
- Android学习之Handler造成内存泄露的分析和解决
- Gb与GB
- Intel Edison开发板使用指南