c++
c++
月朗风清扬
这个作者很懒,什么都没留下…
展开
-
c++11 lambda基础
lambda基础用法示例原创 2022-10-15 17:56:28 · 187 阅读 · 0 评论 -
c++智能指针的实现 my smart_pointer
想写个智能指针,以加深理解。在网上搜了好多例子,都不是很满意,有的都便不过。参考网上的代码,自己改写了一个版本。设计思路如何实现智能指针? 首先要明确,智能指针有哪些基本的功能? 1.管理引用计数,并当引用计数为0时,自动析构。 2.具备一个指针最基本的功能,需要重载以下操作符: operator*() operator->() 3.需要定义以下几个函数 construct copy construct a...原创 2021-12-26 20:30:50 · 520 阅读 · 0 评论 -
c++ function应用实例
为什么要引入std::function? c++中,有多种函数或者类似函数的东西,包括传统函数,lambda表达式,仿函数,类成员函数,类静态函数等。在使用回调函数时,我们需要定义多个版本。引入std::function之后,实现了对函数的统一。std::function是一个多态的函数封装器,通过特征标来统一函数/类函数,从而在在函数/类函数界一统江湖。 下面的例子,所有的函数/类函数具有相同的特征标,int(int),输入一个int型的参数,返回一个in...原创 2021-12-26 14:01:00 · 231 阅读 · 0 评论 -
c++移动构造和普通构造的区别
通过一个例子来说明移动构造和普通构造函数的区别。这个例子也是参考网上的文章做的,原文忘记了。测试环境:Ubuntu 16.04 LTS如果一个class动态分配了内存,则普通构造和移动构造有以下区别:普通构造:会进行深拷贝,涉及到构造和析构移动构造:不会进行深拷贝,直接对对象的所有权进行转移,效率更高。下面的示例代码,在generateResource return时,会进行一次拷贝。如果注释掉移动构造版本的代码,则运行时调用普通的构造函数,log如下:Auto_ptr3()::原创 2021-12-26 13:54:26 · 548 阅读 · 0 评论 -
c++ 如何使用functor仿函数?
如何使用仿函数?1.通过对象调用printf("%d\n", func(2));2.通过临时对象调用funcMode(3)(4);3是构造funcMod使用的,4是传入的参数。3.在STL中使用,传入一个对象,对应的算法会自动调用仿函数。#include <stdio.h>#include <vector>#include <algorithm>class funcMod {private: int m_dev;public:原创 2021-12-25 15:22:34 · 506 阅读 · 0 评论 -
c++内存对象模型&虚函数表vtable布局研究
vtable c++ 内存布局 查看内存布局 虚函数表 多重继承原创 2021-12-11 22:35:55 · 1769 阅读 · 0 评论