陕西手机网站建设公司哪家好网站进入考核期要多久

张小明 2026/1/7 9:30:34
陕西手机网站建设公司哪家好,网站进入考核期要多久,免费空间能放网站吗,怎样用网站做淘宝客基本原理#xff1a;CRTP#xff08;Curiously Recurring Template Pattern#xff09;是一种 C 编程设计模式#xff0c;类似于 RAII、SFINAE、这些东西。核心思想只有一个东西#xff1a;即派生类继承以自身为模板参数的基类模板#xff0c;这样子呢#xff0c;在 C 编…基本原理CRTPCuriously Recurring Template Pattern是一种 C 编程设计模式类似于 RAII、SFINAE、这些东西。核心思想只有一个东西即派生类继承以自身为模板参数的基类模板这样子呢在 C 编译替换期间时它可以知道模版类型信息的所以可以调用目标的成员函数。不带虚函数用途一#include iostream #include vector #include cmath #include memory #include iomanip #include variant // CRTP 基类模板不继承任何虚基类完全静态多态 template typename Derived class Shape { public: double area() const { return static_castconst Derived*(this)-calculateArea(); } double perimeter() const { return static_castconst Derived*(this)-calculatePerimeter(); } void printInfo() const { std::cout std::fixed std::setprecision(2) Area: area() , Perimeter: perimeter() \n; } }; // 圆形 class Circle : public ShapeCircle { double radius; public: Circle(double r) : radius(r) {} double calculateArea() const { return M_PI * radius * radius; } double calculatePerimeter() const { return 2 * M_PI * radius; } }; // 矩形 class Rectangle : public ShapeRectangle { double width, height; public: Rectangle(double w, double h) : width(w), height(h) {} double calculateArea() const { return width * height; } double calculatePerimeter() const { return 2 * (width height); } }; // 三角形 class Triangle : public ShapeTriangle { double a, b, c; public: Triangle(double s1, double s2, double s3) : a(s1), b(s2), c(s3) {} double calculateArea() const { double s (a b c) / 2; return std::sqrt(s * (s - a) * (s - b) * (s - c)); } double calculatePerimeter() const { return a b c; } }; // 使用 std::variant 存储不同类型的形状实现类型安全的统一处理 using ShapeVariant std::variantCircle, Rectangle, Triangle; // Visitor 用于调用 printInfo struct PrintVisitor { templatetypename T void operator()(const T shape) const { shape.printInfo(); } }; int main() { // 创建形状对象并存储在 std::variant 向量中 std::vectorShapeVariant shapes; shapes.emplace_back(Circle(5.0)); shapes.emplace_back(Rectangle(4.0, 6.0)); shapes.emplace_back(Triangle(3.0, 4.0, 5.0)); std::cout 使用 std::variant 和 Visitor 统一处理无虚函数调用:\n; for (const auto shape : shapes) { std::visit(PrintVisitor{}, shape); } // 也可以使用 lambda 直接访问 std::cout \n使用 lambda 直接访问 area 和 perimeter:\n; for (const auto shape : shapes) { std::visit([](const auto s) { std::cout std::fixed std::setprecision(2) Area: s.area() , Perimeter: s.perimeter() \n; }, shape); } // 静态多态单独处理示例 std::cout \n静态多态单独处理:\n; Circle circle(5.0); Rectangle rectangle(4.0, 6.0); Triangle triangle(3.0, 4.0, 5.0); circle.printInfo(); rectangle.printInfo(); triangle.printInfo(); return 0; }以下是带基类虚函数用途二C 17#include iostream #include vector #include cmath #include variant #include memory #include iomanip // CRTP 基类模板 template typename Derived class Shape { public: double area() const { return static_castconst Derived*(this)-calculateArea(); } double perimeter() const { return static_castconst Derived*(this)-calculatePerimeter(); } void printInfo() const { std::cout std::fixed std::setprecision(2) Area: area() , Perimeter: perimeter() \n; } }; // 圆形 class Circle : public ShapeCircle { double radius; public: Circle(double r) : radius(r) {} double calculateArea() const { return M_PI * radius * radius; } double calculatePerimeter() const { return 2 * M_PI * radius; } }; // 矩形 class Rectangle : public ShapeRectangle { double width, height; public: Rectangle(double w, double h) : width(w), height(h) {} double calculateArea() const { return width * height; } double calculatePerimeter() const { return 2 * (width height); } }; // 三角形 class Triangle : public ShapeTriangle { double a, b, c; public: Triangle(double s1, double s2, double s3) : a(s1), b(s2), c(s3) {} double calculateArea() const { double s (a b c) / 2; return sqrt(s * (s - a) * (s - b) * (s - c)); } double calculatePerimeter() const { return a b c; } }; // 使用 std::variant 存储不同类型的形状 using ShapeVariant std::variantCircle, Rectangle, Triangle; // 访问者类用于调用 variant 中的对象的成员函数 class ShapeVisitor { public: void operator()(const Circle c) const { std::cout Circle: ; c.printInfo(); } void operator()(const Rectangle r) const { std::cout Rectangle: ; r.printInfo(); } void operator()(const Triangle t) const { std::cout Triangle: ; t.printInfo(); } }; int main() { // 创建不同类型的图形对象 Circle circle(5.0); Rectangle rectangle(4.0, 6.0); Triangle triangle(3.0, 4.0, 5.0); std::cout 单独处理每个形状:\n; circle.printInfo(); rectangle.printInfo(); triangle.printInfo(); std::cout \n使用 std::variant 统一处理:\n; // 创建 variant 的 vector std::vectorShapeVariant shapes; shapes.push_back(circle); shapes.push_back(rectangle); shapes.push_back(triangle); ShapeVisitor visitor; for (const auto shape : shapes) { std::visit(visitor, shape); } std::cout \n使用 lambda 表达式处理 variant:\n; for (const auto shape : shapes) { std::visit([](const auto s) { using T std::decay_tdecltype(s); if constexpr (std::is_same_vT, Circle) { std::cout Circle: ; } else if constexpr (std::is_same_vT, Rectangle) { std::cout Rectangle: ; } else if constexpr (std::is_same_vT, Triangle) { std::cout Triangle: ; } s.printInfo(); }, shape); } return 0; }C 11#include iostream #include vector #include cmath #include memory #include iomanip // 非模板基类用于类型擦除 class IShape { public: virtual double area() const 0; virtual double perimeter() const 0; virtual void printInfo() const 0; virtual ~IShape() default; }; // CRTP 基类模板 template typename Derived class Shape : public IShape { public: double area() const override { return static_castconst Derived*(this)-calculateArea(); } double perimeter() const override { return static_castconst Derived*(this)-calculatePerimeter(); } void printInfo() const override { std::cout std::fixed std::setprecision(2) Area: area() , Perimeter: perimeter() \n; } }; // 圆形 class Circle : public ShapeCircle { double radius; public: Circle(double r) : radius(r) {} double calculateArea() const { return M_PI * radius * radius; } double calculatePerimeter() const { return 2 * M_PI * radius; } }; // 矩形 class Rectangle : public ShapeRectangle { double width, height; public: Rectangle(double w, double h) : width(w), height(h) {} double calculateArea() const { return width * height; } double calculatePerimeter() const { return 2 * (width height); } }; // 三角形 class Triangle : public ShapeTriangle { double a, b, c; public: Triangle(double s1, double s2, double s3) : a(s1), b(s2), c(s3) {} double calculateArea() const { double s (a b c) / 2; return sqrt(s * (s - a) * (s - b) * (s - c)); } double calculatePerimeter() const { return a b c; } }; int main() { // 创建不同类型的图形对象 std::cout 使用基类指针统一处理:\n; // 使用基类指针的 vector std::vectorstd::unique_ptrIShape shapes; shapes.push_back(std::make_uniqueCircle(5.0)); shapes.push_back(std::make_uniqueRectangle(4.0, 6.0)); shapes.push_back(std::make_uniqueTriangle(3.0, 4.0, 5.0)); for (const auto shape : shapes) { shape-printInfo(); } // 单独处理每个形状静态多态 std::cout \n使用静态多态单独处理:\n; Circle circle(5.0); Rectangle rectangle(4.0, 6.0); Triangle triangle(3.0, 4.0, 5.0); circle.printInfo(); rectangle.printInfo(); triangle.printInfo(); return 0; }
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

长沙住房和城乡建设部网站一个人建网站

YOLOFuse:基于RGB-红外融合的多模态目标检测实践 在城市安防系统中,一个常见的痛点是夜间监控失效——摄像头拍到的画面漆黑一片,传统算法几乎无法识别移动目标。而与此同时,热成像设备却能清晰捕捉人体散发的热量。如何让AI同时“…

张小明 2026/1/6 12:59:09 网站建设

网站后台管理需求wordpress填表

DriverStore Explorer驱动管理大师课:从零基础到系统优化专家 【免费下载链接】DriverStoreExplorer Driver Store Explorer [RAPR] 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer DriverStore Explorer是Windows系统驱动管理的专业解决…

张小明 2026/1/7 4:28:59 网站建设

网站建设项目总结华为企业邮箱登录入口

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 制作一个交互式学习教程:1) 分步骤讲解useImperativeHandle概念;2) 每个步骤配动画示意图;3) 简单代码示例(如控制模态框开关);4) 即…

张小明 2026/1/4 13:03:45 网站建设

广元建设工程网站如何在微信公众号添加wordpress

TP-LINK ACAP组网深度测评与漫游体验 在智能家居设备密集、4K流媒体无处不在的今天,一个“信号满格却卡顿频繁”的Wi-Fi网络早已无法满足用户对稳定性和流畅性的基本期待。越来越多的家庭和小型办公场景开始从单一路由器模式转向更专业的AC(接入控制器&a…

张小明 2026/1/4 13:03:12 网站建设

html网站开发项目企业做网站需要哪些材料

EmotiVoice在远程教学中的互动语音应用场景 在一场线上物理课的直播中,AI助教用温和而清晰的声音讲解完牛顿第一定律后,突然语气一转:“这道题你错了三次——别急,我们再试一次。”语调里带着鼓励和耐心。学生听到的不是冰冷的电子…

张小明 2026/1/4 13:02:36 网站建设

仿简书WordPress什么是seo站内优化

智慧树学习助手:自动化刷课插件的完整使用指南 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 还在为网课学习的重复操作而烦恼吗?智慧树自动化…

张小明 2026/1/7 12:17:41 网站建设