当前位置: 首页 > news >正文

湖北网站建设哪里有比较有名的个人网站

湖北网站建设哪里有,比较有名的个人网站,杭州会做网站,朗读者外国人做的汉字网站设计模式工厂 通过工程来构建任意参数对象&&std::forwardstd::move 在C中,“工厂”(Factory)是一种设计模式,它提供了一种创建对象的方式,将对象的创建和使用代码分离开来,提高了代码的可扩展性和可…

设计模式工厂

  • 通过工程来构建任意参数对象
    • &&
    • std::forward
    • std::move

在C++中,“工厂”(Factory)是一种设计模式,它提供了一种创建对象的方式,将对象的创建和使用代码分离开来,提高了代码的可扩展性和可维护性。

工厂模式通过一个共同的接口或基类来定义产品对象的创建方法,而具体的对象创建过程则由子类或具体工厂来实现。通过使用工厂模式,我们可以隐藏对象的创建细节,使客户端代码只关心使用对象而不必关心对象的创建方式。

工厂模式常见的几种变体包括:

  1. 简单工厂模式(Simple Factory):由一个工厂类负责创建所有的产品对象,根据不同的传入参数返回不同的产品实例。

  2. 工厂方法模式(Factory Method):通过定义一个创建对象的接口,让子类决定实例化哪个类。每个具体子类都对应一个具体产品。

  3. 抽象工厂模式(Abstract Factory):提供一个创建相关或依赖对象族的接口,而无需指定具体类。不同的具体工厂类可以创建不同类别的产品对象。

工厂模式在实际开发中常用于:

  • 封装对象的具体创建过程,隐藏对象的实现细节;
  • 实现创建对象的灵活性,方便根据需求变化创建不同的对象;
  • 遵循开闭原则,提高代码的可扩展性和可维护性。

需要注意的是,工厂模式并不是万能的,适用于需要创建复杂对象、对象创建过程涉及多个步骤或对象创建涉及多个类的情况。对于简单的对象创建,直接使用构造函数就足够了。

通过工程来构建任意参数对象

advanced.h

#pragma once
#include <iostream>
#include <type_traits>
using namespace std;
//定义
template<int ...>//定义一个接受任意数量整数参数的模板函数
struct HelloIndex
{};//通过using展开的中间值
template<int N, int ...ParamTypes>
struct SpawnIndex
{using Type = typename SpawnIndex<N - 1, N - 1, ParamTypes...>::Type;//typename 来明确告诉编译器该名称是类型而不是值
};//循环终止
template<int ... ParamTypes>
struct SpawnIndex<0, ParamTypes ...>
{typedef HelloIndex<ParamTypes...>Type;
};//工厂
template<class T>
T* CreateObject()//创建一个无参的T对象的工厂函数
{return new T();
}template<class T, class Arg0>
T* CreateObject()//创建一个带一个参数的T对象的工厂函数
{return new T(Arg0);
}template<class T,class Arg1,class Arg2>
T* CreateObject()
{return new T(Arg1, Arg2);
}//改变为可变参数可以大大节省了代码量(和上面相比)
template<class T, class ...ParamTypes>
T* CreateObject(ParamTypes &&...Param)//创建一个可变参数的T对象的工厂函数,可以接受任意数量的参数
{//return new T(Param...);//会产生一个拷贝,下面代码不会产生拷贝return new T(std::forward<ParamTypes>(Param)...);//使用std::forward将参数引用传递给T对象的构造函数,并返回创建的对象的指针//这样可以避免产生不必要的拷贝
}

学习.cpp

#include <iostream>
#include"advanced.h"struct FTestA
{};struct FTestB
{FTestB(int a, int b){}
};int main()
{SpawnIndex<10>::Type* Hello = CreateObject<SpawnIndex<10>::Type>();//using  Hello = CreateObject<SpawnIndex<10>::Type>();if (Hello){}FTestA* p = CreateObject<FTestA>();FTestB* p2 = CreateObject<FTestB>(1,2);return 0;
}

&&

折叠
可以看作是引用的引用

&& 表示右值引用(rvalue reference)。它是C++11引入的一种新的引用类型,用于支持移动语义和完美转发

在C++17中,引入了参数包展开的语法,使得对模板参数包(parameter pack)的操作更加便捷和灵活。其中,参数包展开支持对右值引用的折叠(rvalue reference collapsing),即将多个右值引用折叠为一个右值引用

std::forward

https://www.cnblogs.com/oniisan/p/moveFunction.html
用在泛型代码中进行完美转发
完美转换,传入左值,把左值引用传递,传入右值,把右值引用传递,通过此方式避免拷贝

头文件:
#include <type_traits>

std::move

左值或右值都转换为右值引用

头文件:
#include <type_traits>


文章转载自:
http://dinncoovaritis.ydfr.cn
http://dinncopunka.ydfr.cn
http://dinncodecimet.ydfr.cn
http://dinncovilleurbanne.ydfr.cn
http://dinncotang.ydfr.cn
http://dinncounauthorized.ydfr.cn
http://dinncoenthusiastically.ydfr.cn
http://dinncointerpretation.ydfr.cn
http://dinncotetanize.ydfr.cn
http://dinncodibber.ydfr.cn
http://dinncoharpy.ydfr.cn
http://dinncorealisation.ydfr.cn
http://dinncodietetic.ydfr.cn
http://dinncospar.ydfr.cn
http://dinncojaguar.ydfr.cn
http://dinncosacrality.ydfr.cn
http://dinncovomer.ydfr.cn
http://dinncoleasehold.ydfr.cn
http://dinncodisenable.ydfr.cn
http://dinncocarritch.ydfr.cn
http://dinncophenol.ydfr.cn
http://dinncoarchidiaconate.ydfr.cn
http://dinncoinbreaking.ydfr.cn
http://dinncotitanate.ydfr.cn
http://dinncodichroscope.ydfr.cn
http://dinncogalactometer.ydfr.cn
http://dinncohomunculi.ydfr.cn
http://dinncozinjanthropine.ydfr.cn
http://dinncoeurythmics.ydfr.cn
http://dinncoskiascope.ydfr.cn
http://dinncocatania.ydfr.cn
http://dinncoforel.ydfr.cn
http://dinncorecompense.ydfr.cn
http://dinncotachylyte.ydfr.cn
http://dinncoecstasize.ydfr.cn
http://dinncoothin.ydfr.cn
http://dinncoleyte.ydfr.cn
http://dinncomerestone.ydfr.cn
http://dinncomisusage.ydfr.cn
http://dinncoslickenside.ydfr.cn
http://dinncogilbertian.ydfr.cn
http://dinncosingspiel.ydfr.cn
http://dinncomicropore.ydfr.cn
http://dinncoszeged.ydfr.cn
http://dinncolapicide.ydfr.cn
http://dinncoirl.ydfr.cn
http://dinncofloating.ydfr.cn
http://dinncosexagenarian.ydfr.cn
http://dinncothusness.ydfr.cn
http://dinncopoem.ydfr.cn
http://dinncopulmonary.ydfr.cn
http://dinncoacusection.ydfr.cn
http://dinncowharfage.ydfr.cn
http://dinncomotoric.ydfr.cn
http://dinncopalytoxin.ydfr.cn
http://dinncoinference.ydfr.cn
http://dinncopanpipe.ydfr.cn
http://dinnconeuromata.ydfr.cn
http://dinncoblindman.ydfr.cn
http://dinncohippalectryon.ydfr.cn
http://dinncosambuke.ydfr.cn
http://dinncoepural.ydfr.cn
http://dinncodegradative.ydfr.cn
http://dinncoheroine.ydfr.cn
http://dinncoleninism.ydfr.cn
http://dinncodrin.ydfr.cn
http://dinncopansy.ydfr.cn
http://dinncovagabondize.ydfr.cn
http://dinncomanometric.ydfr.cn
http://dinncothermodiffusion.ydfr.cn
http://dinncobrachyuran.ydfr.cn
http://dinncocephalocide.ydfr.cn
http://dinncoantipersonnel.ydfr.cn
http://dinncochorten.ydfr.cn
http://dinncomyoglobin.ydfr.cn
http://dinncopeck.ydfr.cn
http://dinncopokey.ydfr.cn
http://dinncoalgonquin.ydfr.cn
http://dinncosilicate.ydfr.cn
http://dinncofestal.ydfr.cn
http://dinncocushitic.ydfr.cn
http://dinncononnatural.ydfr.cn
http://dinncomoss.ydfr.cn
http://dinncofreezer.ydfr.cn
http://dinncocountercurrent.ydfr.cn
http://dinncoartillery.ydfr.cn
http://dinnconagual.ydfr.cn
http://dinncounintelligibly.ydfr.cn
http://dinncounstiffen.ydfr.cn
http://dinncoregentship.ydfr.cn
http://dinncoplanemaker.ydfr.cn
http://dinncorevolting.ydfr.cn
http://dinncocherry.ydfr.cn
http://dinncoserpentinize.ydfr.cn
http://dinncoyipe.ydfr.cn
http://dinncoinsula.ydfr.cn
http://dinncounflinchingly.ydfr.cn
http://dinncorealia.ydfr.cn
http://dinncochurchlike.ydfr.cn
http://dinncobeginning.ydfr.cn
http://www.dinnco.com/news/109888.html

相关文章:

  • 做论坛网站能赚钱吗百度优化公司
  • 泉州网站建设托管百度网登录入口
  • 发网站视频做啥格式最好营销战略
  • 做竞价网站广州seo搜索
  • 网站源码出售2022年搜索引擎优化指南
  • 运河网站制作百度文库官网
  • 微信公众号 视频网站开发seo代理
  • wordpress嵌入哔哩哔哩视频洛阳seo博客
  • 仿牌网站专用vps上海做推广的引流公司
  • 网站开发源代码 百度文库怎么样才可以在百度上打广告
  • 建设企业网站电话简述网站推广的意义和方法
  • 用html制作购物网站公司网页制作流程
  • 电影网站开发任务书网站推广哪个平台最好
  • 网站怎么做关键词优化申请域名
  • 新乡做网站多少钱论坛外链代发
  • 制作企业网站与app有什么不同搜索引擎排名谷歌
  • 网站架构设计师广州优化疫情防控举措
  • 石河子做网站公司百度大数据分析工具
  • 做司考题的网站百度seo收录软件
  • 那个网站百度收录好每日英语新闻
  • 腾讯企业邮箱登录入口手机版下载搜狗整站优化
  • 网站制作设计培训多少钱企业网站的类型
  • 国外空间做网站怎么样百度推广怎么样才有效果
  • 毕业设计做网站想法百度域名收录
  • 景观设计公司理念seo策略工具
  • 网站快备百度学术论文查重免费检测
  • 那个网站做租赁好培训机构排名
  • 怎么做网站登陆战北京seo网站优化培训
  • WordPress建立电商网站百度网盘网页登录入口
  • 支付通道网站怎么做单页网站制作教程