尧惘宣还是神采奕奕,似乎是在思考总结我讲的东西。
但我不行了。
体力不支使我疲惫,我伏在自己的电脑桌上,黑色发丝凌乱地搭在脸边,立刻就开始呼呼大睡。
…
从宿舍楼的窗口望向外边,是炎热的空气,也有一种云淡风轻。
到了盛夏,毕业生的宿舍里越来越难见到人影。
我穿着端正的衬衫,靠在墙壁,优哉游哉,看着推着行李的那个人来到旁边的电梯口。
我看到自己左手上戴着某个会议的纪念手表。
这是邵教授。
可这又是大四离别的时刻。
似乎半小时前,寝室里,陈天和肥爷一同告别了我,永久离开了相处四年的宿舍,踏上新的人生。
时间线很乱。
"邵哥,这些年怎么样。"
推着行李箱的尧惘宣看着我,也停在电梯旁。他的脸变得成熟而疲惫,被时间着重了的面部棱角里,埋入了皱纹和斑点。
他失去了往日的精气神,但又像是与未来的某刻握手言和,归于安宁。
总之这不是大四毕业生的他。
"还可以,完成了梦想,不过也再难进步就是了。你呢,最后回老家干什么了?"
尧惘宣呵呵一笑,嘴角的皱纹,仿佛他已步入年迈。
"回家,就做做生意,没事上上网。"
"你不会闲着吧?"
我对他扬扬眉毛。
"当然。我过得还不错,但你可得注意身体。"
说着,他突然瞪我一眼: "U语言出来那天,我看到了你的邮箱,我发了邮件但你没回。"
"抱歉,大概是分入了垃圾箱… 那段时间很忙,错过了一些被分错类的邮件。我道歉。"
我回想着,支支吾吾。
"没关系… 你健康问题很严重吧?多锻炼。"
他笑得像是在宽慰我。
"嗯,在计划。你生活方面还过得去吗?"
"邵哥太小看我了,我过得可能比你滋润。"
"尧哥你这看起来怕不都70岁了,还滋润。"
"那也没有你的老肩老脖子啊。"
我与他目光相接,彼此哈哈大笑。
笑声后,是半晌的沉默。
踌躇片刻,我有些犹豫地开口:
"尧哥,我回到了过去,我们的一切都可以改变。"
说完,我感觉脸上皮肤变得敏感,长出长长的头发和睫毛,而衣服的材料开始纠缠扩张,顷刻间变成亮丽的金红色旗袍。
咽喉的感受发生了改变,稍一开口,便是温和而成熟的女子的声音:
"怎么样?"
"这看起来得像是我的菜。流空酱你又实现了一个梦想。"
"这就是你的菜。"
成熟风韵的旗袍佳人柔媚一笑,笑里温情满满。
"是可怜我吗?"
"当然不是。但很想你。"
"为什么呢?"
"后来有空回顾人生,有些结论。可能也是我念旧吧。"
听到我的话,疲惫的中年尧惘宣沉默了半晌,但说话时却没有迟疑:
"我没有想过如果有如果,但流空酱是想改变什么吧?那拜托了。"
"这么相信我?"我抱着质疑的语气。
"没有问题,我比较愿意陪你。"
"嗯。"
看着他有些枯槁的身影,我上前去,用芊芊细手搂住了他的脖子,就好像先前在这梦境之外所做的一般。
"把我们,从追逐中解放吧…"
中年男人轻轻抚摸丰腴的肉体,在我耳边悄声地说。
…
"学姐,学姐…"
一只大手在我脸上捏来捏去。
不对,感觉在乱摸。
揪脸为什么还碰脖子和胸口?
"干嘛?"
我睁开眼睛,看到面无表情的少年玩弄着我的脸蛋。
"干。但有几个问题。"
"说…"
我脑子还有点懵。
没醒。
"嗯,就比如类的方法,继承的时候感觉和学姐说的有冲突。假如我有一个【动物】类,然后有一个【猫】类,它们都有一个方法【叫】,那【猫.叫()】的时候,编译器是怎么让它调用到【猫】的【叫】方法的?"
"什么怎么调用的?"
"【叫(&某只猫)】,不是这种形式吗?"
"对啊。"我一脸疑惑。
"可这个【叫】究竟是怎么选出来的?有两个啊。"
"【某只猫】类型不是【猫】吗?自然选【猫】的【叫】咯。"
"不是… 该怎么说… 那学姐,假如我还有一个【动物】的子类【狗】,然后有一个【动物】数组,里面有【猫】有【狗】,我遍历数组调用【叫】方法,是怎么确定该调用哪个的?"
"哦,你说这个啊。"
我抬起身子,慢慢地理了理头发。
"嗯?"
尧惘宣看着我,但我不紧不慢,甚至还打了个哈欠。
"尧惘宣,我有点累,我可以躺会儿不?"
"学姐要怎么躺?"
不需要解释什么,我直接倒在他的胸膛上。
"学姐,你真的是bitch吗?"
"之前那种事都做了,我还有必要矜持?"
"好吧,bitch学姐,快给我讲。"
我轻哼一声,脖颈的受力感让我觉得很舒服。这是真-人体工学椅。
"其实就是【分派】,或是说【消息传递】的实现了。
你想,假如你有一个【动物】的数组,准确说这里只能是【动物】指针的数组。里面有【猫】指针,也有【狗】指针,但其实都是当做【动物】指针在处理。
其实,你应该很容易从这里猜到,c++继承的内存布局。"
"学姐,我猜不到。有点晕。"
"哼!你想,【动物】指针的数组里,都是真正的【动物】指针。"
"很奇怪啊,不应该是【猫】或者【狗】的指针吗?"
"哼哼。"
我抬头看着皱了眉的尧惘宣,笑眯眯地往他怀里蹭蹭:
"我前面说过,指针只不过是一个表示整数的地址吧?"
"对。所以?"
"这个地址指到一片内存,这片内存可以表示【猫】和【狗】。可你想想,相同的内存地址,是不是也能存【动物】?"
尧惘宣听得有点迷茫,他便秘般地揉了揉头发——
然后突然激动起来,抱着怀里的我,身体前倾,来到桌前,就开始画图。
"喂,轻点,磕着了…"
我不开心。
"学姐乖,看看是不是这个意思?"
我满脸狐疑地看向眼前的作业本。上面画着
一只猫:
|【动物】占的内存|【猫】占的其他内存|
"诶,差不多这个意思吧。"
我点点头。
"有点开心。"
他摸着下巴。
淦,是我的下巴。
算了,我猛男不和男斗。
"嗯…所以你懂了吧。一个【猫】对象,它所占内存的头部,就是一个【动物】对象。
如果【动物】对象的方法【叫】是virtual方法(虚方法),那么【猫】初始化时,virtual方法初始化为【猫】的【叫】。
此时一只【猫】的内存布局接近于——"
我开始在纸上画。
|【猫】的【叫】|
"如果【动物】的【叫】方法没有标记为virtual方法,那么一只【猫】的内存布局是——"
|【动物】的【叫】|【猫】的【叫】|
"在这种情况下,把你的【猫】放到一群【动物】里,它就不会像猫一样叫,而是抽象的动物叫。因为当这只【猫】指针,用来表示【动物】指针时,它取不到【猫】的【叫】。"
"有点意思,而且挺搞笑的。"
"懂了?"
我白了他一眼。
"可能还需要理解一下,不过感觉确实不难。"
"内存和编译,是很好玩的东西哦。"
我轻轻敲打他的胸膛,享受地听着里面轰响的强力心跳。
"确实。"
他呼出一个热气,从我的耳梢掠过。
痒痒的。
此时,我悄悄勾起一个得逞的笑。
哼哼,尧惘宣,你就慢慢堕入——
堕入我为你精心设计的PL陷阱吧!