学习记录13(包package)

1.编译;2.import,否则不会被识别
包是一种共享的机制,也就是说将多需要共享的静态变量(常量)/静态方法function和task/类型typedef/类class等打包,共享给多个module/interface/program。

一般是将不同类的的定义规整到不同的packeage,能将相关的类组织在单一的命名空间(namespace),将分属于不同模块的验证环境的类来自不同的包,也就是说将实现相同功能的模块打包到一起,而对于整个项目,我需要很多功能的集成,这里就要使用不同功能包内的多个module、interface、program中共享的parameter、data、type、task、function、class等方法。

image
image

注意不同包之间的类或者模块interface等是可以重名的,因为包名是根据功能定义的,虽然命名相同,但是内容不同,实现功能也不同。

问:如果将重名的类归属到不同的package有没有问题呢?会不会重名编译错误?
package会将命名空间分隔开来,如果要使用不同包内的同名类,只需要注明使用哪个包中的类就行了,如果没有重名则不用加包名,编译器会自动识别属于哪个包。

image

image

注意::*是指将包内所有用到的文件定义都导入,包名::成员名 的方式是为了明确访问包内的静态变量或静态方法 ,
命名空间隔离:明确了类或变量的归属,相当于在 C 语言中通过命名空间或头文件路径来区分同名标识符

image

posted on 2026-07-22 13:13  tuck0603  阅读(16)  评论(0)    收藏  举报

导航