两层多态,四个类

2024-05-27 14:32
文章标签 多态 两层 四个

本文主要是介绍两层多态,四个类,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

     花了一上午的时间,写了四个类,主函数中用了两层多态,按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;
} 

这篇关于两层多态,四个类的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1007744

相关文章

JavaSE——封装、继承和多态

1. 封装 1.1 概念      面向对象程序三大特性:封装、继承、多态 。而类和对象阶段,主要研究的就是封装特性。何为封装呢?简单来说就是套壳屏蔽细节 。     比如:对于电脑这样一个复杂的设备,提供给用户的就只是:开关机、通过键盘输入,显示器, USB 插孔等,让用户来和计算机进行交互,完成日常事务。但实际上:电脑真正工作的却是CPU 、显卡、内存等一些硬件元件。

【JVM】JVM栈帧中的动态链接 与 Java的面向对象特性--多态

栈帧 每一次方法调用都会有一个对应的栈帧被压入栈(虚拟机栈)中,每一个方法调用结束后,都会有一个栈帧被弹出。 每个栈帧中包括:局部变量表、操作数栈、动态链接、方法返回地址。 JavaGuide:Java内存区域详解(重点) 动态链接 动态链接:指向运行时常量池中该栈帧所属方法的引用。 多态 多态允许不同类的对象对同一消息做出响应,但表现出不同的行为(即方法的多样性)。 多态

java基础总结14-面向对象10(多态)

面向对象最核心的机制——动态绑定,也叫多态 1 通过下面的例子理解动态绑定,即多态 package javastudy.summary;class Animal {/*** 声明一个私有的成员变量name。*/private String name;/*** 在Animal类自定义的构造方法* @param name*/Animal(String name) {this.name = n

OOP三个基本特征:封装、继承、多态

OOP三个基本特征:封装、继承、多态 C++编程之—面向对象的三个基本特征 默认分类 2008-06-28 21:17:04 阅读12 评论1字号:大中小     面向对象的三个基本特征是:封装、继承、多态。     封装 封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。   封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信

如何限制与管控员工上网行为?四个方法让员工效率倍增!【企业员工上网行为管理】

在信息化时代,员工的上网行为直接影响着工作效率和企业的安全性。不当的网络使用,如浏览与工作无关的网站、下载不安全的文件,可能导致工作效率低下,甚至引发安全风险。因此,许多企业正在积极寻找有效的措施来管控员工的上网行为,以确保工作效率的提升。 以下是四个常见且有效的员工上网行为管理方法,帮助企业实现更高效的网络管理。 方法一:配置网络防火墙进行访问限制 最基础的员工上网行为管理方法是通过配置防

泛型第三课,自定义泛型、无多态、通配符、无泛型数组

泛型没有多态 package com.pkushutong.genericity4;/*** 多态的两种形式* 注:泛型没有多态* @author dell**/public class Test01 {public static void main(String[] args) {Fruit f = new Fruit();test(new Apple());}//形参使用多态publi

Python中的方法重写与多态:解锁编程的无限可能

在编程的世界里,灵活性与扩展性往往是衡量一个语言是否强大、易于维护的关键指标。Python,作为一种被广泛使用的高级编程语言,不仅以其简洁易读的语法赢得了众多开发者的喜爱,更因其支持多种面向对象特性而备受青睐。其中,“方法重写”与“多态”便是两个核心概念,它们不仅能够极大地提高代码的复用性和可维护性,还能帮助我们构建更加灵活、健壮的软件系统。本文将通过一系列由浅入深的例子,带你一起探索这两个概念的

当网工,华为认证哪种适合我?四个维度来解惑

随着网络技术的不断进步,对网工的专业技能要求也越来越高。 在这种背景下,获得权威认证成为了提升个人技能、证明专业能力的重要途径。 华为,作为全球领先的ICT解决方案提供商,其认证项目在业界享有极高的声誉。 华为认证不仅涵盖了网络技术的各个方面,还根据不同的技能水平和职业发展阶段,提供了不同级别的认证,包括HCIA、HCIP、HCIE。 这些认证不仅有助于网络工程师提升自己的技术水平,也是企业在招聘

《C++中的面向对象编程三大特性:封装、继承与多态》

在 C++编程的广阔世界中,面向对象编程(Object-Oriented Programming,OOP)的三大特性——封装、继承和多态,犹如三把强大的利器,帮助程序员构建出高效、可维护和可扩展的软件系统。本文将深入探讨如何在 C++中实现这三大特性,并通过具体的代码示例展示它们的强大之处。 一、封装(Encapsulation) 封装是将数据和操作数据的方法封装在一个类中,以实现信息隐藏和数

Mysql的四个隔离级别 与mvcc(2)

特殊颜色字体为自己总结,关于mvcc直接看最后面的。 一、Mysql的四个隔离级别 预备工作: 先创建一个test数据库及account表, create database test;use test;create table account(id int not null,balance float not null,PRIMARY KEY ( id)) 向accoun