杨过小龙女玉女心经篇--简单工厂模式
模式 简单 -- 工厂
2023-09-14 09:12:42 时间
Mountain:终南山
Single_arm:杨过
Little_dragon_maiden:小龙女
Jade girl's Heart Sutra:玉女心经
Dust_world:尘世
being silent and your palm:黯然销魂掌
#include <iostream>
#include <string>
using namespace std;
enum MARTIAL
{
single_arm,
little_dragon_maiden
};
class Mountain
{
public:
int test_int = 3;
virtual void show() = 0;
};
class Single_arm : public Mountain
{
public:
Single_arm(int param_test = 0)
{
this->test_int = param_test;
}
private:
void show();
};
void Single_arm::show()
{
cout << "being silent and your palm" << endl;
}
class Little_dragon_maiden : public Mountain
{
private: //并不会限制show()函数
void show();
};
// void Little_dragon_maiden::show_again()
// {
// cout << "again_show" << endl;
// }
void Little_dragon_maiden::show()
{
cout << "Jade girl's Heart Sutra" << endl;
}
class Dust_world
{
public:
static Single_arm* p_Single_arm;
static Little_dragon_maiden* p_Little_dragon_maiden;
static Mountain* character(MARTIAL type);
};
Single_arm* Dust_world::p_Single_arm = NULL;
Little_dragon_maiden* Dust_world:: p_Little_dragon_maiden = NULL;
Mountain* Dust_world::character(MARTIAL type)
{
if(type == single_arm)
{
if(p_Single_arm == NULL)
{
p_Single_arm = new Single_arm(6);
}
return p_Single_arm;
}
if(type == little_dragon_maiden)
{
if(p_Little_dragon_maiden == NULL)
{
p_Little_dragon_maiden = new Little_dragon_maiden;
}
return p_Little_dragon_maiden;
}
}
int main(void)
{
Mountain* p_Mounuain = Dust_world::character(MARTIAL::single_arm);
Mountain* p_Mounuain_2 = Dust_world::character(MARTIAL::little_dragon_maiden);
cout << "test_int : " << p_Mounuain->test_int << endl;
cout << "test_int : " << Dust_world::p_Single_arm->test_int << endl;
p_Mounuain->show();
p_Mounuain_2->show();
//可访问
//虚函数表可见性
Dust_world::character(MARTIAL::single_arm)->show();
delete Dust_world::p_Single_arm;
delete Dust_world::p_Little_dragon_maiden;
cout << "hello friend !" << endl;
//不可访问
// Single_arm* test_p_Single_arm = new Single_arm(0);
// test_p_Single_arm->show();
//不可访问
// Single_arm sigle_arm;
// sigle_arm.show();
return 0;
}
哎呦喂ヾ(✿゚▽゚)ノ~路长馆小,雪轻帘薄,酒热乎,这位爷~您ヾ(✿゚▽゚)ノ~ 里面坐~
本公众号专注分享C++,ffmpeg,opencv等相关音视频知识
webrtc,udp,tcp,rtsp,rtmp,srt/nginx+rtmp等流媒体协议和服务器
同时也会有大厂音视频技术专家不定期直播分享…
国人开发流媒体srs服务器,及yangrtc(国人版的webrtc)协议新动向
偶尔分享下程序员梦呓碎碎念(๑•॒̀ ູ॒•́๑)啦啦啦
目前刚刚开通,接受读者的优质投稿…
鉴于国内音视频圈子小,起步晚,以致分享少,门槛高,特开通分享,一起扇动这阵风吧!
微信扫描下方二维码,关注公众号,赶快进入音视频开发者社区吧!
![](https://img-blog.csdnimg.cn/32ebb60e13f9449496052c247d2ccf65.png)
![](https://img-blog.csdnimg.cn/bfd8a35f631f44059d8d1d228a22d54b.jpg)
![](https://img-blog.csdnimg.cn/1b3e3fc19f5f4837a6514769eabf4e10.png)
相关文章
- 解释器模式-破解算术验证码
- java 工厂模式例子_java 工厂模式简单介绍及例子[通俗易懂]
- 装饰器模式
- JSP+JavaBean+DAO模式+MySQL实现一个简单的注册登录(新闻登录系统)
- Windows反调试技术简单讲解(用户模式篇)
- php设计模式-简单工厂模式 (Simple Factory)
- 原来要这么实现单例模式
- 一起学习设计模式--02.简单工厂模式
- 一起学习设计模式--03.工厂方法模式
- 消息队列RabbitMQ核心:简单(Hello World)模式、队列(Work Queues)模式、发布订阅模式
- Hybrid模式下的热更新技术方案
- 设计模式 | 行为型 | 职责链模式
- 漫谈模式之简单工厂和工厂方法模式
- 【OpenGL】十八、OpenGL 绘制多边形 ( 绘制 GL_POLYGON 模式多边形 )
- 【Android 逆向】ARM CPU 架构体系 ( ARM 处理器工作模式 | ARM 架构模型 )
- 为什么需要创建型模式以及简单工厂模式(三)详解程序员
- Java 简单工厂模式详解编程语言
- Linux网络模式:让计算更简单(linux网络模式)
- Linux发展历程:见证分支模式的成长(linux的分支)
- DevOps 思维模式的 5 个基本价值观
- MySQL安全模式怎么用?简单且易懂的指南(mysql安全模式)
- 下的调优MSSQL简单模式下的性能调优(mssql 简单模式)
- 模式 Linux下快速进入单用户模式的简单方法(linux 进入单用户)
- 检查Redis 集群模式一步一步前进(检查redis 集群模式)
- 使用redis实现订阅发布模式简单高效(redis订阅发布机制)
- ZendFramework中的简单工厂模式图文
- 简单谈谈javascript代码复用模式