c++-zoo动物园
面向对象抽象类写动物园
animal
animal.h
#pragma once
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
class Animal
{
public:
//纯虚函数,让子类继承并且实现
virtual void voice() = 0;
Animal();
virtual ~Animal();
};
//架构函数
//让动物叫
void letAnimalCry(Animal *animal);
animal.cpp
#include "Animal.h"
Animal::Animal()
{
cout << "animal().." << endl;
}
Animal::~Animal()
{
cout << "~Animal()..." << endl;
}
void letAnimalCry(Animal *animal)
{
animal->voice();
if (animal != NULL) {
delete animal;
}
}
dog
dog.h
#pragma once
#include "Animal.h"
class Dog : public Animal
{
public:
Dog();
~Dog();
virtual void voice();
};
dog.cpp
#include "Dog.h"
Dog::Dog()
{
cout << "Dog().." << endl;
}
Dog::~Dog()
{
cout << "~Dog().." << endl;
}
void Dog::voice()
{
cout << "¹·¿ªÊ¼¿ÞÁË£¬ 555" << endl;
}
cat
cat.h
#pragma once
#include "Animal.h"
class Cat : public Animal
{
public:
Cat();
~Cat();
virtual void voice();
};
cat.cpp
#include "Cat.h"
Cat::Cat()
{
cout << "cat().." << endl;
}
Cat::~Cat()
{
cout << "~cat().." << endl;
}
void Cat::voice()
{
cout << "小猫开始哭了,66666" << endl;
}
main
main.cpp
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include "Animal.h"
#include "Dog.h"
#include "Cat.h"
using namespace std;
int main(void)
{
letAnimalCry(new Dog);
letAnimalCry(new Cat);
#if 0
Animal *dog = new Dog;
letAnimalCry(dog);
delete Dog;
#endif
return 0;
}
c++-zoo动物园的更多相关文章
- C#索引器的应用:自已写一个表格
C#中索引器,在一个类中有很多的同一类型成员的时候,比较适用索引器. 环境:我们假设有一个动物园,里边有很多动物. 用法: 1.先定义一个类,这是成员的类型.在这里就是要定义一个Animal类: pu ...
- JavaSE学习总结(五)——封装,继承,多态很简单
java面向对象的三大特性是:封装.继承与多态,是面向对象编程的核心. 一.封装 简单说封装就是将同一类事物的特性与功能包装在一起,对外暴露调用的接口. 封装:封装也称信息隐藏,是指利用抽象数据类型把 ...
- 英语发音规则---字母组合oo的发音规律
英语发音规则---字母组合oo的发音规律 一.总结 一句话总结:在英语单词中,字母组合oo多数读长音/u:/,少数读短音/ʊ/.另外,还有极少数的特殊情况读/ʌ/, 在英语单词中,字母组合oo多数读长 ...
- 六大设计原则(C#)
为什么要有设计原则,我觉得一张图片就可以解释这一切 一.单一职责原则(SRP) 对于一个类而言,应该只有一个发生变化的原因.(单一职责不仅仅是指类) 如果一个模块需要修改,它肯定是有原因的,除此原因之 ...
- 研究Zookeeper的原理(一)
阅读声明:以下内容是结合网上材料所写个人理解,如有不当,欢迎大家指正~~~谢谢 一.Zookeeper介绍 zookeeper,见名知意嘛,zoo动物园,keeper保持者.管理员,结合起来就是动物管 ...
- 5-12 Kafka 消息队列
消息队列(Message Queue) 软件下载 软件下载 MQ_Blog Dubbo远程调用的性能问题 Dubbo调用在微服务项目中普遍存在 这些Dubbo调用都是同步的 "同步" ...
- bzoj 1151: [CTSC2007]动物园zoo
思路:因为每个人最多只能看到五个动物,我们考虑将其状压,f[ i ][ s ] 表示到了第 i 个位置, i, i + 1, i + 2, i + 3, i + 4这四个动物的状态为s, 此时的最大值 ...
- 2018.09.08 bzoj1151: [CTSC2007]动物园zoo(状压dp)
传送门 状压dp好题啊. 可以发现这道题的状压只用压缩5位. f[i][j]表示当前在第i个位置状态为j的最优值. 显然可以由f[i-1]更新过来. 因此只用预处理在第i个位置状态为j时有多少个小朋友 ...
- [CTSC2007]动物园zoo
link 试题分析 发现每个小朋友最多只能看到$5$个动物所以考虑状压$dp$.我们定义$f(i,j)$为第$i$个位置从此往后$5$个人的最喜欢数量.所以只要预处理出对于每个点从后$5$个会让多少小 ...
随机推荐
- Java基础面试题及答案(一)
Java 基础部分 1. JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境. JRE:Java ...
- 【Android - 控件】之V - ViewPager的使用
ViewPager是Android V4包中的一个控件,常常用来作为首页的滚动广告,也常常结合Fragment来实现页面的切换效果. ViewPager和ListView有很多相似的地方,都是适配器控 ...
- OpenStack - keystone 问题 'NoneType' object has no attribute 'service_catalog'
'NoneType' object has no attribute 'service_catalog' 报错 编辑:/etc/keystone/keystone-paste.ini 在[pipeli ...
- 使用Navicat连接阿里云服务器中的Mysql数据库
1.首先将阿里云服务器中的安全组添加上Mysql的端口3306,如下图所示: 步骤就是进入到阿里云的官网,点击右上角控制台,在左边选择云服务器ECS--->实例 点击图中的管理按钮,然后选择本实 ...
- 使用Python开发小说下载器,不再为下载小说而发愁 #华为云·寻找黑马程序员#
需求分析 免费的小说网比较多,我看的比较多的是笔趣阁.这个网站基本收费的章节刚更新,它就能同步更新,简直不要太叼.既然要批量下载小说,肯定要分析这个网站了- 在搜索栏输入地址后,发送post请求获取数 ...
- where 和having 的区别
where : 约束声明,在查询结果返回之前对数据库中的查询条件进行约束 其后不能写聚合函数 having 过滤声明,在查询结果返回之后进行过滤,
- 带你从头到尾捋一遍MySQL索引结构(2)
前言 Hello我又来了,快年底了,作为一个有抱负的码农,我想给自己攒一个年终总结.索性这次把数据库中最核心的也是最难搞懂的内容,也就是索引,分享给大家. 这篇博客我会谈谈对于索引结构我自己的看法,以 ...
- emmet的html和css使用技巧大全
emmet html使用技巧大全 ! 初始化 >:后代+:兄弟^:向上*:乘法$:数字():分组#:id命名.:类命名 一.id,类命名p#infop.infoa[href=#] 二.后代:di ...
- UESTC-1964命运石之门(类似SPFA的BFS)
命运石之门 Time Limit: 1000 MS Memory Limit: 256 MB Submit Status "这一切都是命运石之门的选择!" 凶真博士发明了能 ...
- Where/Order by/Ggroup by/Having使用的注意事项
1.Where.Order by.Group by .having Where作用对象是:基本表或视图,从中选出符合条件的元素. Order by 作用对象是:基本表或视图,就是排序方式,分为升序(A ...