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

直播网站开发秀色上海综合新闻

直播网站开发秀色,上海综合新闻,网站备案信息被注销,容桂企业网站建设Curiously Recurring Template Pattern 奇怪的模板递归 — C20 我们都知道C有静态多态和动态多态,动态多态通过虚函数表实现,他的缺点就是对效率产生一点点影响 可以用CRTP解决这个问题 我们先举一个动态多态的例子: #include iostream using namespace std;class …Curiously Recurring Template Pattern 奇怪的模板递归 — C20 我们都知道C有静态多态和动态多态,动态多态通过虚函数表实现,他的缺点就是对效率产生一点点影响 可以用CRTP解决这个问题 我们先举一个动态多态的例子: #include iostream using namespace std;class Base { public:virtual void invoking(){cout Base endl;} };class Derived1 final : public Base { public:virtual void invoking() override final{cout Derived1 endl;} };class Derived2 final : public Base { public:virtual void invoking() override final{cout Derived2 endl;} };int main() {Derived1* derived1 new Derived1;Derived2* derived2 new Derived2;derived1-invoking();derived2-invoking();}会在运行时查找虚函数表,影响运行时效率 使用CRTP编译器多态 特点:子类继承基类,且基类有一个模板参数,并以子类类型为参数 #include iostream using namespace std;template typename Derived class Base { public:void interface(){static_castDerived*(this)-implementation();}void implementation(){cout Implementation Base endl;} };class Derived1 :public BaseDerived1 { public:void implementation(){cout Implementation Derived1 endl;} };class Derived2 : public BaseDerived2 { public:void implementation(){cout Implementation Derived2 endl;} };class Derived3 : public BaseDerived3 { public: };template typename T void execute(T base) {base.interface(); }int main(int argc, char* argv[]) {Derived1 d1;execute(d1);Derived2 d2;execute(d2);Derived3 d3;execute(d3); } 每个基类都调用 base.interface(); 然后调用static_castDerived*(this)-implementation(); 这样就在编译器实现了多态,避免了动态多态 1class Baseclass Derived1 size(1): 1 --- 1 --- 1class Baseclass Derived2 size(1): 1 --- 1 --- 1class Baseclass Derived3 size(1): 1 --- 1 ---#include chrono #include iostreamauto start std::chrono::steady_clock::now();void writeElapsedTime() {auto now std::chrono::steady_clock::now();std::chrono::durationdouble diff now - start;std::cerr diff.count() sec. elapsed: ; }template typename ConcreteMessage // (1) struct MessageSeverity {void writeMessage() { // (2)static_castConcreteMessage*(this)-writeMessageImplementation();}void writeMessageImplementation() const {std::cerr unexpected std::endl;} };struct MessageInformation : MessageSeverityMessageInformation {void writeMessageImplementation() const { // (3)std::cerr information std::endl;} };struct MessageWarning : MessageSeverityMessageWarning {void writeMessageImplementation() const { // (4)std::cerr warning std::endl;} };struct MessageFatal : MessageSeverityMessageFatal {}; // (5)template typename T void writeMessage(T messServer) {writeElapsedTime();messServer.writeMessage(); // (6)}int main() {std::cout std::endl;MessageInformation messInfo;writeMessage(messInfo);MessageWarning messWarn;writeMessage(messWarn);MessageFatal messFatal;writeMessage(messFatal);std::cout std::endl;}Info; writeMessage(messInfo); MessageWarning messWarn; writeMessage(messWarn);MessageFatal messFatal; writeMessage(messFatal);std::cout std::endl;} ![image-20220609224336869](https://img-blog.csdnimg.cn/img_convert/4ed12bcf5b8ae5ceeaa9a1575e87989a.png)
http://www.zqtcl.cn/news/916278/

相关文章:

  • 广州做啊里巴巴网站多少钱自贡公司做网站
  • 天津做家政的网站购物网站功能模块图
  • 哪个网站好网站赚钱的方式
  • 班级网站建设开题报告在线音乐网站开发摘要
  • 昆山装饰公司网站建设wordpress olve
  • 重庆哪个区最繁华百度seo排名规则
  • 长春火车站高清图片网站商城微信支付宝支付宝支付接口
  • 市场体系建设司在官方网站支付宝手机网站支付
  • dedecms 模版网站网站图标下载
  • 余姚 做网站北京南站
  • 腾讯建设网站视频视频视频中国建筑信息平台
  • 关于政务网站建设的调查问卷搜狗网页版
  • 网站开发工程师优势宁波seo网站
  • 做网站用什么编程软件php网站中水印怎么做
  • p2网站模板做视频官方网站
  • 网站建设季度考核评价工作php做网站有哪些优点
  • 设计某网站的登录和注册程序凡科建站添加文章
  • wordpress 批量打印wordpress 数据库优化
  • 购物网站开发设计类图网络架构指什么
  • 学校网站建设方法wordpress 调用用户名
  • 深圳创建网站公司哈尔滨全员核酸检测
  • 网站开发实施计划宠物网站 html模板
  • 在线生成手机网站商城网站平台怎么做
  • 深圳专业企业网站制作哪家好写作网站新手
  • 福建泉州曾明军的网站桥梁建设期刊的投稿网站
  • 国内设计网站公司wordpress电视主题下载
  • 自贡网站开发河南省建设网站首页
  • 昆明网站推广优化服务器代理
  • wordpress 网站统计插件福建省建设工程职业注册网站
  • 手机移动端网站是什么上海网站设计服务商