aardio名字空间库的扩展方法(三)
通过前面的操作,我们实现了只要导入spaceB这个扩展库,就可以使用spaceA这个基库的内容,还可以使用我们自己新扩展出来的功能,目标达成。这里面有几个问题需要解释:
一、我们继承基库,采用的是在扩展库里import基库的方法,这体现了import的类似嵌套的用法。我们没有采用复制粘贴基库代码的方法,因为这种复制的方法,一旦基库更新,我们的扩展库没办法自动跟进。要知道,aardio的标准库是经常更新的。import没有这方面的问题,我么继承的永远是最新的标准库。
二、在扩展库里导入基库后,我们又在下面namespace spaceA{},相当于为spaceA库打开一个新的入口,让我们可以混入一些新成员。这里如果新成员的名字与原有成员相同,会覆盖掉,切记。
三、在namespace spaceB{}里面,实际上我们什么也没写。如果在这里写东西,那么调用的时候就得是test.spaceB.XXX,不是我们想要的效果。我们希望的是整齐划一,无论原有成员还是扩展成员,都采用test.spaceA.XXX的调用方式,所以要采用上篇演示的写法。
四、既然namespace spaceB{}里什么也没有,能否删除呢?不能。因为如果删除掉,aardio就无法加载test.spaceB.aardio这个库文件。aardio加载库文件,要求文件中必须有一个与文件路径相同的名字空间。所以,虽然我们想要加载的是有代码的spaceA,但是这个没代码的spaceB必须留着作为牵线人。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
