C++
文章平均质量分 66
yinjun66
计算机小硕一枚~
展开
-
多态实现原理-虚函数表内存分析及虚基类表的内存分析
看了深入探索C++对象模型后的一些感悟1:虚函数表内存分析每一个类对象的内存由nostatic data member和指向虚数表的指针之和决定。class A{private:int a;virtual void fun1();virtual void fun2();};calss B: public A{void fun2();virtual voi原创 2017-03-31 11:50:28 · 786 阅读 · 0 评论 -
C++类的内存对齐-C++alignment
在C++中的某一个类的内存大小是由以下三部分组成:1:nonstatic data member的总和大小2:alignment所填补的空间,可能存在于members之间,也可能是类的边界3:为了支持virtual而由内部产生的额外负担,比如:指虚基类表的指针或指向虚函数表的指针其中1和3都比较好确定,比较难确定的是2中的内存对齐(填补)的大小以下的分析都是Visual Std原创 2017-04-08 11:19:22 · 4721 阅读 · 0 评论 -
C++内存存储区域:堆区栈区以及new delete
C/C++内存大概有: 1:栈区,它是有系统自动分配和释放,速度快效率高,但不自由;局部变量,函数参数,返回值等都存储在这个区域。 2:堆区,它是由程序员能过new或malloc自己分配的,不过在不需要的时候也需要自己通过delete和free释放内存。很灵活。 3:全局或静态存储区域:存放全局或静态变量。其中初始化的变量放在一块区域,未初始化的放在另一块区域。 4:常量区域:存放常量的原创 2017-04-28 10:06:21 · 821 阅读 · 0 评论 -
用C++的STL部分实现Python中的list(列表)
本来准备来实现一个简单的python的shell交互器,现在只完成了python中几个数据结构的实现,目前正在啃编译原理,等编译原理啃完了再继续回来实现pytyon的shell。 写的有点乱哈~~ Github有详细的代码:这里写链接内容 实现的思想: Python中的列表是个神奇的数据结构,也是Python中最学用的一个数据结构(个人认为),它能存放各个类型的数据,lst1=[1,2,2.原创 2017-04-28 11:10:22 · 2460 阅读 · 3 评论 -
《深入探索C++对象模型》读后总结
第一章:关于对象 1:C++每个类对象的内存大小由:类中非静态成员内存的和,指向虚函数表的指针和内存对齐的内存三者共同决定。 内存如何对齐,我以前写过一篇博文里讲的很详细。 2:虚函数表里存放的是虚函数的内存地址,对象调用虚函数就是通过虚函数表找到它的地址从而调用它,这也是多态的实现原理。 3:struct和class除了默认的权限不同外,其它基本一样;在只使用数据成员时用struct 第原创 2017-05-06 16:34:38 · 544 阅读 · 0 评论 -
Linux上搭建百度brpc框架
由于平常用的rpc都是用thrift,百度开源brpc后想知道两者的差异是什么,所以就急切的从github上下载研究研究,发现文档写的是真的好~~当然还有里面的例子。研究了几天后,想搭好环境实现一波,搭好之后想把过程遇到的坑分享出来~ 随便说下,我的是centos7的版本,ubutun也差不多。 一、brpc依赖三个开源库:是gflags,protobuf和leveldb。gflags是用于原创 2017-11-12 15:28:24 · 10100 阅读 · 2 评论