2024年3月31日

C++: 虚函数,一些可能被忽视的细节

摘要: C++: 虚函数,一些可能被忽视的细节 引言:关于C++虚函数,对某些细节的理解不深入,可能导致我们的程序无法按预期结果运行,或是表明我们对其基本原理理解不够透彻。本文详细解答以下几个问题:实现多态,忘记写virtual会怎么样?虚函数的默认参数可以重载吗?纯虚函数真的不能有实现吗?析构函数可以是纯 阅读全文

posted @ 2024-03-31 13:46 七昂的技术之旅 阅读(6) 评论(0) 推荐(0) 编辑

2024年1月19日

C++ vector 访问元素用 at 和 [] 有什么区别?

摘要: C++ vector 访问元素用 at and [] 有什么区别? 前言: 最近同事开发过程遇到了一个奇怪的coredump问题,崩溃位置和提交改动没有任何关系,看了几小时后来才发现原来是vector越界访问了,使用了[]越界访问元素。在此,记录一下at()和[]的区别,便于日后可以更快速地定位问题 阅读全文

posted @ 2024-01-19 00:06 七昂的技术之旅 阅读(59) 评论(0) 推荐(0) 编辑

2024年1月14日

为什么C++ 单例局部static初始化是线程安全的?

摘要: 为什么C++ 单例局部static初始化是线程安全的? const bg::AppSettings& bg::AppSettings::GetInstance() { static AppSettings instance; return instance; } 对于以上单例模式代码,在 C++11 阅读全文

posted @ 2024-01-14 19:24 七昂的技术之旅 阅读(33) 评论(0) 推荐(0) 编辑

2024年1月13日

C++源码中司空见惯的PIMPL是什么?

摘要: 前言: C++源码中司空见惯的PIMPL是什么?用原始指针、std::unique_ptr和std::shared_ptr指向Implementation,会有什么不同?优缺点是什么?读完这篇文章,相信你能搞懂这种设计方式并将其运用于实践,也将更容易阅读源码。 1. PIMPL是什么? PIMPL是 阅读全文

posted @ 2024-01-13 22:51 七昂的技术之旅 阅读(54) 评论(0) 推荐(0) 编辑

2023年12月18日

万字长文全面详解现代C++智能指针:原理、应用和陷阱

摘要: 现代C++智能指针详解:原理、应用和陷阱 智能指针是C++11引入的新特性。本篇文章详细介绍了C++智能指针的原理、应用与陷阱,通过丰富的代码实例介绍了三种智能指针:std::unique_ptr、std::shared_ptr和std::weak_ptr的原理、使用方法和适用场景,还介绍了智能指针 阅读全文

posted @ 2023-12-18 14:38 七昂的技术之旅 阅读(171) 评论(0) 推荐(0) 编辑

2023年12月16日

C++ 高效使用智能指针的8个建议

摘要: C++ 高效使用智能指针的8个建议 前言:智能指针是C++11提供的新特性,它基于RAII实现,可以自动管理内存资源,避免内存泄漏的发生,但是智能指针也并不是万能的,如果不正确使用智能指针,也会导致内存泄漏的发生,因此,我们需要了解如何高效使用智能指针避免一些可能的陷阱。本文总结了8个关于智能指针的 阅读全文

posted @ 2023-12-16 13:41 七昂的技术之旅 阅读(120) 评论(0) 推荐(0) 编辑

C++: 智能指针的自定义删除器 `Custom Deleter` 有什么用?

摘要: C++11智能指针std::shared_ptr和std::unique_ptr都支持自定义删除器,本文将介绍自定义删除器的使用场景和使用方法。智能指针模板参数的第二个类型是删除器,一般是一个函数指针类型或者是一个函数对象类型。通常情况下,删除器的类型是std::default_delete<T>, 阅读全文

posted @ 2023-12-16 13:40 七昂的技术之旅 阅读(119) 评论(0) 推荐(0) 编辑

2023年11月22日

C++ shared_ptr是线程安全的吗?

摘要: 导读:C++面试中有时会有这样一个问题,shared_ptr是线程安全的吗?对此问题,我们需要从三个并发场景进行考虑,拷贝shared_ptr的安全性、对shared_ptr赋值的安全性和读写shared_ptr指向内存区域的安全性。 对于以上问题,首先给出以下结论: 如果多个线程同时拷贝同一个sh 阅读全文

posted @ 2023-11-22 00:42 七昂的技术之旅 阅读(247) 评论(0) 推荐(1) 编辑

2023年11月20日

C++ weak_ptr除了解决循环引用还能做什么?

摘要: C++: weak_ptr到底有什么用? 很多人对std::weak_ptr的认识只是不增加std::shared_ptr的引用计数,可以用来解决std::shared_ptr可能造成的循环引用问题。但是,实际对它的认识还是不够深刻,本文将从几个实际应用场景讲解,深入了解这种智能指针。比如,你是否知 阅读全文

posted @ 2023-11-20 00:35 七昂的技术之旅 阅读(76) 评论(0) 推荐(0) 编辑

2023年10月29日

C++ | 每一个C++程序员都应该知道的RAII

摘要: 导读:RAII是C++中一种管理资源、避免资源泄漏的惯用法,利用栈的特点来实现。本文较为详细介绍了RAII的原理、使用方法和优点,并且通过实例讲解了RAII在C++ STL中的应用,如智能指针和互斥锁等,在最后进行了编程实践。本文适合对C++编程有一定了解的开发者阅读。 1. 什么是RAII RAI 阅读全文

posted @ 2023-10-29 14:21 七昂的技术之旅 阅读(29) 评论(0) 推荐(0) 编辑

导航