网站可以不备案吗网站建设与维护的选择题

张小明 2026/1/10 18:52:25
网站可以不备案吗,网站建设与维护的选择题,天津建设网网站打不开,农产品大宗交易平台基本原理#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进行投诉反馈,一经查实,立即删除!

镇江高端网站建设私人ftp服务器

Linly-Talker与抖音开放平台对接可行性分析 在直播电商风头正劲的今天,品牌方对内容更新频率和用户互动质量的要求达到了前所未有的高度。一个直播间每分钟都可能涌入成千上万条评论与提问,而真人主播难以持续高强度应答。与此同时,数字人技术…

张小明 2026/1/7 6:14:07 网站建设

网站建设参考书91手表网

SVG.js动画开发终极指南:从零开始掌握矢量图形动画 【免费下载链接】svg.js 项目地址: https://gitcode.com/gh_mirrors/svg/svg.js SVG.js是一个功能强大的JavaScript库,专门用于创建和操作SVG矢量图形。在前端开发领域,SVG.js以其简…

张小明 2026/1/10 2:52:40 网站建设

辽宁省交通投资建设集团网站wordpress代码显示头像

LobeChat在远程办公协作中的信息辅助作用 在远程办公逐渐成为常态的今天,团队成员分散在不同时区、不同系统中工作,沟通成本悄然攀升。一个简单的项目进度查询,可能需要切换三四套系统:先去钉钉翻聊天记录,再进 Jira …

张小明 2026/1/6 1:31:46 网站建设

重庆市中心城区西安百度关键词优化排名

权威第三方机构Gartner预测,截至2026年全球传统搜索引擎访问量将下滑25%,近四分之一的搜索流量将加速向AI聊天机器人、智能问答助手等新兴载体迁移(来源:第一财经)。这一趋势直接推动GEO(生成式引擎优化&am…

张小明 2026/1/2 22:55:38 网站建设

武清做网站的国外的调查网站上做问卷

在全球数字化浪潮中,处理跨国信息已成为各类应用的标配需求。ISO-3166-Countries-with-Regional-Codes项目将国际标准化组织的国家编码与国际地理区域代码完美融合,为开发者提供了即插即用的全球数据解决方案,彻底告别手动收集和维护的烦恼。…

张小明 2026/1/10 13:25:52 网站建设

在一起做网店的网站的怎么购买厦门网站建设哪家好

Qwen3-Next-80B推理性能超越Gemini-2.5-Flash 【免费下载链接】Qwen3-Next-80B-A3B-Thinking Qwen3-Next-80B-A3B-Thinking 在复杂推理和强化学习任务中超越 30B–32B 同类模型,并在多项基准测试中优于 Gemini-2.5-Flash-Thinking 项目地址: https://ai.gitcode.c…

张小明 2026/1/2 11:51:54 网站建设