随笔分类 -  Effective C++

C++ : 仅添加一个引用& 就直接导致程序崩溃
摘要:问题描述 在项目某次开发中,测试过程中出现了coredump问题。经过asan工具检测,报了heap-use-after-free内存错误,最终定位到竟是无意中添加了一个引用&导致的! 开发时因为看到相关类访问类成员的接口函数未返回引用,而是返回了一个拷贝,因此想着要将返回值改为引用,避免多余的拷贝 阅读全文

posted @ 2024-06-07 00:24 七昂的技术之旅 阅读(269) 评论(0) 推荐(0)

C++: 如何高效地往unordered_map中插入key-value
摘要:C++: unordered_map 花式插入key-value的5种方式 前言 无意中发现std::unordered_map、std::map等插入key-value对在C++17后竟有了 insert() 、operator[] 、 emplace() 、 try_emplace() 和 in 阅读全文

posted @ 2024-06-07 00:23 七昂的技术之旅 阅读(1085) 评论(0) 推荐(0)

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

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

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

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

Effective C++——Item33: 避免隐藏继承的名字
摘要:Effective C++——Item33: 避免隐藏继承的名字 一、从原理理解隐藏 从变量作用域看隐藏 全局变量x和局部变量x的类型是不同的,但C++的隐藏规则:只隐藏名字(hiding names)。 int x; // global variable void someFunc() { dou 阅读全文

posted @ 2023-10-07 22:06 七昂的技术之旅 阅读(74) 评论(0) 推荐(0)

Effective C++ Item 11: 在operator=中处理自赋值问题
摘要:一、定义赋值运算符函数需要注意的问题: 返回值类型声明为引用,并在函数返回前返回*this。因为只有返回引用,才能允许连续赋值。 传入参数应声明为常量引用,否则从形参到实参会多调用一次拷贝构造函数,降低代码效率。赋值运算符函数不会改变传入的实例的状态,因此传入参数应添加const关键字。 是否释放实 阅读全文

posted @ 2023-02-06 15:02 七昂的技术之旅 阅读(416) 评论(0) 推荐(0)

Effective C++ Item 3 ——尽可能使用const;const成员函数如何改变类的成员变量
摘要:C++ const 一、 语义约束 一个特定的对象不应该被修改,即是只读的。 二、用法 1. 修饰全局范围或命名空间内的静态对象 2. 修饰类的静态或非静态成员 3. 修饰指针或指针指向的数据 const出现在星号左边,则指针所指的内容为只读的。 const出现在星号右边,则指针自身为只读的。 co 阅读全文

posted @ 2023-02-05 22:33 七昂的技术之旅 阅读(278) 评论(0) 推荐(0)

导航