14.5 面向对象编程和class(下)

作者:redyred 更新时间:2020/5/31 16:08:48 字数:2501

尧惘宣还是神采奕奕,似乎是在思考总结我讲的东西。

但我不行了。

体力不支使我疲惫,我伏在自己的电脑桌上,黑色发丝凌乱地搭在脸边,立刻就开始呼呼大睡。

从宿舍楼的窗口望向外边,是炎热的空气,也有一种云淡风轻。

到了盛夏,毕业生的宿舍里越来越难见到人影。

我穿着端正的衬衫,靠在墙壁,优哉游哉,看着推着行李的那个人来到旁边的电梯口。

我看到自己左手上戴着某个会议的纪念手表。

这是邵教授。

可这又是大四离别的时刻。

似乎半小时前,寝室里,陈天和肥爷一同告别了我,永久离开了相处四年的宿舍,踏上新的人生。

时间线很乱。

"邵哥,这些年怎么样。"

推着行李箱的尧惘宣看着我,也停在电梯旁。他的脸变得成熟而疲惫,被时间着重了的面部棱角里,埋入了皱纹和斑点。

他失去了往日的精气神,但又像是与未来的某刻握手言和,归于安宁。

总之这不是大四毕业生的他。

"还可以,完成了梦想,不过也再难进步就是了。你呢,最后回老家干什么了?"

尧惘宣呵呵一笑,嘴角的皱纹,仿佛他已步入年迈。

"回家,就做做生意,没事上上网。"

"你不会闲着吧?"

我对他扬扬眉毛。

"当然。我过得还不错,但你可得注意身体。"

说着,他突然瞪我一眼: "U语言出来那天,我看到了你的邮箱,我发了邮件但你没回。"

"抱歉,大概是分入了垃圾箱… 那段时间很忙,错过了一些被分错类的邮件。我道歉。"

我回想着,支支吾吾。

"没关系… 你健康问题很严重吧?多锻炼。"

他笑得像是在宽慰我。

"嗯,在计划。你生活方面还过得去吗?"

"邵哥太小看我了,我过得可能比你滋润。"

"尧哥你这看起来怕不都70岁了,还滋润。"

"那也没有你的老肩老脖子啊。"

我与他目光相接,彼此哈哈大笑。

笑声后,是半晌的沉默。

踌躇片刻,我有些犹豫地开口:

"尧哥,我回到了过去,我们的一切都可以改变。"

说完,我感觉脸上皮肤变得敏感,长出长长的头发和睫毛,而衣服的材料开始纠缠扩张,顷刻间变成亮丽的金红色旗袍。

咽喉的感受发生了改变,稍一开口,便是温和而成熟的女子的声音:

"怎么样?"

"这看起来得像是我的菜。流空酱你又实现了一个梦想。"

"这就是你的菜。"

成熟风韵的旗袍佳人柔媚一笑,笑里温情满满。

"是可怜我吗?"

"当然不是。但很想你。"

"为什么呢?"

"后来有空回顾人生,有些结论。可能也是我念旧吧。"

听到我的话,疲惫的中年尧惘宣沉默了半晌,但说话时却没有迟疑:

"我没有想过如果有如果,但流空酱是想改变什么吧?那拜托了。"

"这么相信我?"我抱着质疑的语气。

"没有问题,我比较愿意陪你。"

"嗯。"

看着他有些枯槁的身影,我上前去,用芊芊细手搂住了他的脖子,就好像先前在这梦境之外所做的一般。

"把我们,从追逐中解放吧…"

中年男人轻轻抚摸丰腴的肉体,在我耳边悄声地说。

"学姐,学姐…"

一只大手在我脸上捏来捏去。

不对,感觉在乱摸。

揪脸为什么还碰脖子和胸口?

"干嘛?"

我睁开眼睛,看到面无表情的少年玩弄着我的脸蛋。

"干。但有几个问题。"

"说…"

我脑子还有点懵。

没醒。

"嗯,就比如类的方法,继承的时候感觉和学姐说的有冲突。假如我有一个【动物】类,然后有一个【猫】类,它们都有一个方法【叫】,那【猫.叫()】的时候,编译器是怎么让它调用到【猫】的【叫】方法的?"

"什么怎么调用的?"

"【叫(&某只猫)】,不是这种形式吗?"

"对啊。"我一脸疑惑。

"可这个【叫】究竟是怎么选出来的?有两个啊。"

"【某只猫】类型不是【猫】吗?自然选【猫】的【叫】咯。"

"不是… 该怎么说… 那学姐,假如我还有一个【动物】的子类【狗】,然后有一个【动物】数组,里面有【猫】有【狗】,我遍历数组调用【叫】方法,是怎么确定该调用哪个的?"

"哦,你说这个啊。"

我抬起身子,慢慢地理了理头发。

"嗯?"

尧惘宣看着我,但我不紧不慢,甚至还打了个哈欠。

"尧惘宣,我有点累,我可以躺会儿不?"

"学姐要怎么躺?"

不需要解释什么,我直接倒在他的胸膛上。

"学姐,你真的是bitch吗?"

"之前那种事都做了,我还有必要矜持?"

"好吧,bitch学姐,快给我讲。"

我轻哼一声,脖颈的受力感让我觉得很舒服。这是真-人体工学椅。

"其实就是【分派】,或是说【消息传递】的实现了。

你想,假如你有一个【动物】的数组,准确说这里只能是【动物】指针的数组。里面有【猫】指针,也有【狗】指针,但其实都是当做【动物】指针在处理。

其实,你应该很容易从这里猜到,c++继承的内存布局。"

"学姐,我猜不到。有点晕。"

"哼!你想,【动物】指针的数组里,都是真正的【动物】指针。"

"很奇怪啊,不应该是【猫】或者【狗】的指针吗?"

"哼哼。"

我抬头看着皱了眉的尧惘宣,笑眯眯地往他怀里蹭蹭:

"我前面说过,指针只不过是一个表示整数的地址吧?"

"对。所以?"

"这个地址指到一片内存,这片内存可以表示【猫】和【狗】。可你想想,相同的内存地址,是不是也能存【动物】?"

尧惘宣听得有点迷茫,他便秘般地揉了揉头发——

然后突然激动起来,抱着怀里的我,身体前倾,来到桌前,就开始画图。

"喂,轻点,磕着了…"

我不开心。

"学姐乖,看看是不是这个意思?"

我满脸狐疑地看向眼前的作业本。上面画着

一只猫:

|【动物】占的内存|【猫】占的其他内存|

"诶,差不多这个意思吧。"

我点点头。

"有点开心。"

他摸着下巴。

淦,是我的下巴。

算了,我猛男不和男斗。

"嗯…所以你懂了吧。一个【猫】对象,它所占内存的头部,就是一个【动物】对象。

如果【动物】对象的方法【叫】是virtual方法(虚方法),那么【猫】初始化时,virtual方法初始化为【猫】的【叫】。

此时一只【猫】的内存布局接近于——"

我开始在纸上画。

|【猫】的【叫】|

"如果【动物】的【叫】方法没有标记为virtual方法,那么一只【猫】的内存布局是——"

|【动物】的【叫】|【猫】的【叫】|

"在这种情况下,把你的【猫】放到一群【动物】里,它就不会像猫一样叫,而是抽象的动物叫。因为当这只【猫】指针,用来表示【动物】指针时,它取不到【猫】的【叫】。"

"有点意思,而且挺搞笑的。"

"懂了?"

我白了他一眼。

"可能还需要理解一下,不过感觉确实不难。"

"内存和编译,是很好玩的东西哦。"

我轻轻敲打他的胸膛,享受地听着里面轰响的强力心跳。

"确实。"

他呼出一个热气,从我的耳梢掠过。

痒痒的。

此时,我悄悄勾起一个得逞的笑。

哼哼,尧惘宣,你就慢慢堕入——

堕入我为你精心设计的PL陷阱吧!

设置
阅读主题:
字体大小:
字体格式:
简体 繁体
页面宽度:
手机阅读
菠萝包轻小说

iOS版APP
安卓版APP

扫一扫下载