本文主要是介绍两层多态,四个类,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
花了一上午的时间,写了四个类,主函数中用了两层多态,按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;
}
这篇关于两层多态,四个类的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!