上一页 1 2 3 4 5 6 7 ··· 13 下一页
摘要: 文章目录 面向对象设计:为什么?变化是复用的天敌面向对象的价值:抵御变化 重新认识面向对象理解“隔离变化”各司其职对象是什么? 面向对象设计原则单一职责原则 (SRP)开放封闭原则 (OCP)**里氏替换原则 (LSP)****依赖倒置原则 (DIP)****接口隔离原则 (ISP)****优先使用 阅读全文
posted @ 2024-12-03 19:14 KevinBee 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 文章目录 什么是设计模式?为什么需要设计模式?GOF 设计模式再次理解面向对象软件设计固有的复杂性软件设计复杂性的根本原因如何解决复杂性?分解抽象 结构化 VS 面向对象(封装)结构化设计代码示例:面向对象设计代码示例:对比总结 软件设计的目标:复用!总结 在软件开发过程中,开发者经常面临复杂系统的 阅读全文
posted @ 2024-12-03 19:12 KevinBee 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 文章目录 智能指针的使用原因及场景分析为什么需要智能指针?异常抛出导致的资源泄漏问题分析 智能指针与RAIIC++常用智能指针 使用智能指针优化代码优化后的代码优化点分析 析构函数中的异常问题解决方法 RAII 和智能指针的设计思路详解什么是 RAII?RAII 的工作原理 智能指针的设计思路RAI 阅读全文
posted @ 2024-11-16 18:25 KevinBee 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 文章目录 异常的概念异常的抛出与捕获栈展开(Stack Unwinding)四、总结 查找匹配的处理代码 异常的重新抛出三、模拟示例:服务模块中的异常处理四、总结 C++ 异常规范详解一、C++98异常规范二、C++11及其后的异常规范 (`noexcept`)三、使用`noexcept`的场景与注 阅读全文
posted @ 2024-11-16 15:16 KevinBee 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 文章目录 `function``std::function` 的基本语法使用 `std::function` 包装不同的可调用对象`function`包装普通成员函数为什么要传入 `this` 指针参数?传入对象指针与传入对象实例的区别 例题 :150. 逆波兰表达式求值 - ⼒扣(LeetCode 阅读全文
posted @ 2024-11-14 08:15 KevinBee 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 默认的移动构造和移动赋值 在 C++11 之前,编译器会为每个类自动生成默认的构造函数、析构函数、拷贝构造函数、拷贝赋值运算符等函数,以实现对象的创建、销毁和拷贝操作。但拷贝操作会复制整个对象的数据,效率低,尤其是在处理大对象或动态分配的资源时。为了解决这一问题,C++11 引入了移动语义(Move 阅读全文
posted @ 2024-11-10 17:05 KevinBee 阅读(10) 评论(0) 推荐(0) 编辑
摘要: lambda 表达式(Lambda Expressions)作为一种匿名函数,为开发者提供了简洁、灵活的函数定义方式。相比传统的函数指针和仿函数,lambda 表达式在简化代码结构、提升代码可读性和编程效率方面表现出色。 Lambda 表达式的基本语法 在 C++ 中,lambda 表达式的格式如下 阅读全文
posted @ 2024-11-10 17:03 KevinBee 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 文章目录 基本语法及原理可变参数模板的基本语法参数包的两种类型可变参数模板的定义 `sizeof...` 运算符可变参数模板的实例化原理可变参数模板的意义 包扩展包扩展的基本概念包扩展的实现原理编译器如何展开参数包包扩展的高级应用 `emplace` 系列接口`emplace_back` 和 `em 阅读全文
posted @ 2024-11-09 13:27 KevinBee 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 文章目录 左值和右值左值(Lvalue)右值(Rvalue)区别 左值引⽤和右值引⽤左值引用(Lvalue Reference)右值引用(Rvalue Reference)右值引用的特点 右值引用延长生命周期右值引⽤和移动语义的使⽤ (重点)左值引用的主要使用场景回顾移动构造函数与移动赋值操作符 定 阅读全文
posted @ 2024-10-27 21:46 KevinBee 阅读(16) 评论(0) 推荐(0) 编辑
摘要: C++发展历史 C++11是C++语言的第二个主要版本,也是自C++98以来最重要的一次更新。它引入了大量的新特性,标准化了已有的实践,并极大地改进了C++程序员可用的抽象能力。在2011年8月12日被ISO正式采纳之前,人们一直使用“C++0x”这个名称,因为它原本预计会在2010年之前发布。然而 阅读全文
posted @ 2024-10-26 18:30 KevinBee 阅读(23) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 13 下一页
点击右上角即可分享
微信分享提示