2008年12月3日星期三

friend, mutable和人参果

传说中阿克琉斯没有被冥水浸泡过的脚后跟,成为他最后致命的弱点。正因为这个脚后跟,呆板的神变得有血有肉,形象立即丰满起来。

像是密室的通风口,高压后自行了断的保险丝,连续工作周期里的法定假期,死循环程序里的退出按键,甚至维纳斯意外残缺的臂膀;总之,我觉得,在各种设计、逻辑系统,美学艺术感受之中,我们需要合理独到的例外。好像例外让系统获得了更好的可用性、稳定性、灵活性,甚至启发性。

以上的感受,促使我把friend和mutable这两个c++的关键字,联系到了一起。类中的私有成员只能在该类内部被直接访问,这一逻辑有个例外,类中声明的友元也能直接访问该类的私有成员。类中的成员函数一旦被const修饰后,就不能改变类的成员变量,而这一逻辑也有一个例外,被const修饰后的方法能够改变被mutable修饰了的成员变量。

可见,friend和mutable都可理解为源自两种逻辑例外的设计。加入friend、mutable后,语言设计者考虑的例外,被纳入了语言的标准逻辑;随后,在使用者看来,原本的例外也被消解了。

我想,世界整体的多样性即是由例外构成的;包含了各种可见例外和消解后的例外。想到此,突然口渴,满脑子冒出人参果。这果子遇金而落,遇木而枯,遇水而化,遇火而焦,遇土而入。敲时必用金器,方得下来。打下来,却将盘儿用丝帕衬垫方可。若受些木器,就枯了,就吃也不得延寿。吃他须用磁器,清水化开食用,遇火即焦而无用……

没有评论: