随笔分类 -  C++

1 2 下一页

C++多继承和虚继承的内存布局(虚函数表不光有虚函数指针)
摘要:https://blog.csdn.net/yockie/article/details/50603236 警告. 本文有点技术难度,需要读者了解C++和一些汇编语言知识。 在本文中,我们解释由gcc编译器实现多继承和虚继承的对象的布局。虽然在理想的C++程序中不需要知道这些编译器内部细节,但不幸的 阅读全文

posted @ 2019-05-23 23:14 Shihu 阅读(1702) 评论(0) 推荐(0)

STL里的priority_queue用法
摘要:在STL里有这个priority_queue,实现优先队列的结构。在优先队列中,优先级高的元素先出队列。 现在在这里说说用法吧 先看看语法: In their implementation in the C++ Standard Template Library, priority queues t 阅读全文

posted @ 2019-05-20 23:55 Shihu 阅读(270) 评论(0) 推荐(0)

C++中memset一个对象
摘要:实验一 1、代码 2、结果 3、分析 A a;是静态绑定,不会使用到虚函数指针。 A *a = new B(3, 4); 动态绑定,需要使用虚函数指针 实验二 1、代码 2、结果 3、分析 A *a = new A(5, 6); 动态绑定,需要使用虚函数指针 静态联编==静态绑定:在编译期决定运行哪 阅读全文

posted @ 2019-05-20 22:58 Shihu 阅读(520) 评论(0) 推荐(0)

signed char型内存位bit表示
摘要:signed char型内存 80 81 82 83 84 85 86 87 88 89 8a 8b 8c 8d 8e 8f 90 91 92 93 94 95 96 97 98 99 9a 9b 9c 9d 9e 9f a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 aa ab ac 阅读全文

posted @ 2019-04-10 10:53 Shihu 阅读(950) 评论(0) 推荐(0)

如何使用新的glibc来编译自己的程序
摘要:http://www.sysnote.org/2015/08/25/use-new-glibc/ 通常情况下我们都是直接使用glibc提供的一些库函数,但是某些特殊的情况,比如要修改glibc的一些代码或者加入glibc的一些编译选项或者要使用其他版本的glibc,我们就需要重新编译glibc。编译 阅读全文

posted @ 2019-03-18 11:48 Shihu 阅读(4328) 评论(0) 推荐(1)

Woboq查看gcc和linux代码网站
摘要:https://code.woboq.org 阅读全文

posted @ 2018-12-21 10:18 Shihu 阅读(314) 评论(0) 推荐(0)

malloc的可重入性和线程安全分析
摘要:malloc函数是一个我们经常使用的函数,如果不对会造成一些潜在的问题。下面就malloc函数的线程安全性和可重入性做一些分析。 我们知道一个函数要做到线程安全,需要解决多个线程调用函数时访问共享资源的冲突。而一个函数要做到可重入,需要不在函数内部使用静态或全局数据,不返回静态或全局数据,也不调用不 阅读全文

posted @ 2018-12-19 11:47 Shihu 阅读(3018) 评论(0) 推荐(0)

理解 glibc malloc:主流用户态内存分配器实现原理
摘要:https://blog.csdn.net/maokelong95/article/details/51989081 Understanding glibc malloc 修订日志: 译者言: Understanding glibc malloc 前言 1. 申请堆的系统调用 2. 多线程支持 2. 阅读全文

posted @ 2018-12-17 16:32 Shihu 阅读(1650) 评论(0) 推荐(1)

cout和printf不能混用
摘要:1、两者的缓存机制不同:printf无缓冲区,而std::cout有 (其实printf也是有缓冲区的,https://blog.csdn.net/ithzhang/article/details/6875176) 2、对于标准输出的加锁时机不同:printf在对标准输出作任何处理前先加锁;std: 阅读全文

posted @ 2018-11-17 17:52 Shihu 阅读(2475) 评论(0) 推荐(0)

C/C++ Volatile关键词深度剖析
摘要:http://hedengcheng.com/?p=725 强烈推荐阅读原文 背景 背景 前几天,发了一条如下的微博 (关于C/C++ Volatile关键词的使用建议): 此微博,引发了朋友们的大量讨论:赞同者有之;批评者有之;当然,更多的朋友,是希望我能更详细的解读C/C++ Volatile关 阅读全文

posted @ 2018-10-30 21:19 Shihu 阅读(360) 评论(0) 推荐(0)

技术博客
摘要:blueyi's notes: http://notes.maxwi.com/ 阅读全文

posted @ 2018-10-26 16:44 Shihu 阅读(159) 评论(0) 推荐(0)

EOF是什么
摘要:我学习C语言的时候,遇到的一个问题就是EOF。 它是end of file的缩写,表示"文字流"(stream)的结尾。这里的"文字流",可以是文件(file),也可以是标准输入(stdin)。 比如,下面这段代码就表示,如果不是文件结尾,就把文件的内容复制到屏幕上。 int c; while (( 阅读全文

posted @ 2018-10-21 23:37 Shihu 阅读(1033) 评论(0) 推荐(0)

希尔排序
摘要:希尔排序实现 参考: 1、https://www.cnblogs.com/chengxiao/p/6104371.html 2、参考《C和C++程序员面试秘笈-董山海》第九章排序 希尔排序 阅读全文

posted @ 2018-03-25 00:15 Shihu 阅读(158) 评论(0) 推荐(0)

面向对象设计七大原则
摘要:面向对象设计七大原则 1. 单一职责原则(Single Responsibility Principle) 每一个类应该专注于做一件事情。 2. 里氏替换原则(Liskov Substitution Principle) 超类存在的地方,子类是可以替换的。 3. 依赖倒置原则(Dependence 阅读全文

posted @ 2018-03-06 22:18 Shihu 阅读(127) 评论(0) 推荐(0)

IBM-内存管理内幕 动态分配的选择、折衷和实现
摘要:https://www.ibm.com/developerworks/cn/linux/l-memory/ 为什么必须管理内存 内存管理是计算机编程最为基本的领域之一。在很多脚本语言中,您不必担心内存是如何管理的,这并不能使得内存管理的重要性有一点点降低。对实际编程来说,理解您的内存管理器的能力与 阅读全文

posted @ 2018-03-06 22:07 Shihu 阅读(369) 评论(0) 推荐(0)

阿里笔试题-修改虚函数表指针
摘要:https://www.zhihu.com/question/29256578/answer/43725188 一道阿里实习生笔试题的疑惑? 问题:#include <iostream> using namespace std; class animal { protected: int age; 阅读全文

posted @ 2018-03-06 21:45 Shihu 阅读(289) 评论(0) 推荐(0)

虚函数表和虚函数指针是什么/在哪里
摘要:为什么bs虚函数表的地址(int*)(&bs)与虚函数地址(int*)*(int*)(&bs) 不是同一个? class base { virtual void f1() {} }; 作者:RednaxelaFX链接:https://www.zhihu.com/question/27459122/a 阅读全文

posted @ 2018-03-06 21:39 Shihu 阅读(5805) 评论(0) 推荐(0)

C++学习 - 虚表,虚函数,虚函数表指针学习笔记
摘要:http://blog.csdn.net/alps1992/article/details/45052403 虚函数 虚函数就是用virtual来修饰的函数。虚函数是实现C++多态的基础。 虚表 每个类都会为自己类的虚函数创建一个表,来存放类内部的虚函数成员。 虚函数表指针 每个类在构造函数里面进行 阅读全文

posted @ 2018-03-06 21:33 Shihu 阅读(365) 评论(0) 推荐(0)

类成员函数的重载、覆盖和隐藏区别 (C++)(转)
摘要:类成员函数的重载、覆盖和隐藏区别 (C++) 这是本人第一次写博客,主要是想记录自己的学习过程、心得体会,一是可以方便以后回顾相关知识,二是可以与大家相互学习交流。 关于C++中类成员函数的重载、覆盖和隐藏区别,第一次看到这个问题是在准备找工作的时候在牛客网中(http://www.nowcoder 阅读全文

posted @ 2018-03-06 21:01 Shihu 阅读(394) 评论(0) 推荐(0)

new 和 delete 用法
摘要:1、 这两个其实是 C++ 语言标准库的库函数,原型分别如下: 2、基本数据类型 3、类 4、动态数组 阅读全文

posted @ 2018-01-18 15:33 Shihu 阅读(176) 评论(0) 推荐(0)

1 2 下一页

导航