https://s3.ax1x.com/2021/01/21/s4crsU.png

BBing's Blog

自由 分享 合作

C++类的内存分布(二)

《C++类的内存分布》中, 我们使用gdb大概了解了C++类的内存结构, 并得到了以下结论:

  • 类成员函数只有一份,所有实例共享
  • 类的成员变量有多份,不同实例维护不同的成员变量
  • 即使是继承关系,派生类的成员变量也只是基类的复制体,而不是指向同一块内存
  • 派生类会把从基类继承过来的成员变量当做自己的普通成员变量一样看待
  • 类的虚表只有一份,所有实例共享
  • 编译器在编译的时候, 通过给类添加__vptr指针指向虚表而得到虚表地址.

本文主要目的是扩展vptr和vtable部分, 深入了解C++多态的实现原理.


tmux插件-保存会话

下载插件

1
2
3
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
git clone https://github.com/tmux-plugins/tmux-resurrect ~/.tmux/plugins/tmux-resurrect
git clone https://github.com/tmux-plugins/tmux-continuum ~/.tmux/plugins/tmux-continuum

进程控制和通信(五) · socket通信

socket通信应用

这是进程通信的最后一节. socket可以实现不同进程间的通信, 可以是相同机器的不同进程, 也可以是不同机器的不同进程.

本文的目的是简要学习socket通信的应用, 并且结合前几篇的内容, 学习socket通信的部分底层实现. 涉及到的一些api因为网上参考内容很多, 这里就不会介绍api的使用了.


html5锚点滚动

原始方案

1
2
3
4
5
<div class="fixedbox">
    <a class="actiongithub" href="https://github.com/caibingcheng/rssblog" title="GitHub" target="_blank" rel="noopener noreffer me"></a>
    <a class="actiontop" href="#top-header"></a>
    <a class="actionbottom" href="#bottom-footer"></a>
</div>

一般会按照上述方案实现锚点滚动, 但是这种方案的问题有两点:

  1. 会改变url
  2. 滚动动画不平滑

jinja2模板错位问题

问题

我有以下模板:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<div class="grid">
    {% for item in data.data %}
    <a href={{ item.link }} class="card">
        <span class="cardindex">{{ loop.index }}. &nbsp;&nbsp;</span>
        <span class="cardtitle">{{ item.title }}</span>
        <div class="carddetail">
            <span class="cardate">{{ item.date }}</span>
            <a href={{ item.home }} class="cardhome">
                <span class="cardauthor">{{ item.author }}</span>
            </a>
        </div>
    </a>
    {% endfor %}
</div>