随笔分类 - C/C++
摘要:问题: 当对象生成时, 编译器会自动产生调用其类构造函数代码,在编码过程中可以为类中的数据成员赋予恰当的初始值,在某些情况下,编译器会提供默认的构造函数和析构函数 1)在何种情况下编译器会提供默认的构造函数和析构函数? 2)编译器如何调用?? 构造函数时机 对象生成时会自动调用构造函数。只要找到了定
阅读全文
摘要:前言: 虚函数是面向对象程序设计的关键部分,对象的多态性需要通过虚函数表和虚函数指针来完成,虚函数表指针被定义在对象首地址前四个字节地方,因此虚函数必须作为成员函数使用,由于非成员函数没有this指针,无法获得虚表指针,进而无法获得虚表,也就无法访问虚函数 这次学习主要解决认识几个问题: 1. 为什
阅读全文
摘要:单类继承 在父类中声明为私有的成员,子类对象无法直接访问,但是在子类对象的内存结构中,父类私有的成员数据依然存在。C++语法规定的访问限制仅限于编译层面,在编译过程中进行语法检查,因此访问控制不会影响对象的内存结构。 子类未提供构造函数或析构函数,而父类却需要构造函数与析构函数时,编译器会为子类提供
阅读全文
摘要:1.基本数据结构 分别是 eventpoll、epitem 和 eppoll_entry。 1.1 eventpoll 我们先看一下 eventpoll 这个数据结构,这个数据结构是我们在调用 epoll_create 之后内核侧创建的一个句柄,表示了一个 epoll 实例。后续如果我们再调用 ep
阅读全文
摘要:找了很多资料发现这一篇文章写的最好,转载以下:https://blog.csdn.net/cqu20093154/article/details/44020043 ....................................................................
阅读全文
摘要:举个实例 运行出core 反汇编: main函数在call func之前: 明显的错误,把ebp的下4字节的内容移动到当前esp所指向的内容,实际上做了一个*p的副本,为func函数使用;调用func函数后: movq $test_num, -8(%rbp)于是,func函数操作的只是*p的副本,把
阅读全文
摘要:参考文献: 《C++程序设计》 推荐转载博文:https://www.cnblogs.com/xiaokang01/p/9166745.html#_label1 .....................................................................
阅读全文
摘要:参考书籍: 《C++ 程序设计》 .................................................................................................................... 迭代器是一种检查容器内元素并遍历
阅读全文
摘要:一. 实现原理 首先变长参数的实现依赖于cdecl调用,因为其规定了出栈方为函数调用方,从而解决被调用函数无法确定参数个数,其次cdecl规定参数入栈顺序为从右到左。所以第一个不定参数位于栈顶 二. 宏源码讲解 (va > variable-argument(可变参数)) 头文件 stdarg.h
阅读全文
摘要:1. 先看一下整体代码的内存布局 from:https://manybutfinite.com/post/anatomy-of-a-program-in-memory/ 2. 简单用个实例来体现程序中各个变量的内存位置(引用于《C专家编程》截图) 我们这边着重讲一下堆(heap),栈(stack)
阅读全文