购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.4.2 new函数与其他函数有哪些不同?

每一个类都必须具备一个new()函数。用户可以不单独定义new()函数,但系统会在编译时为其隐式声明一个空白实现的new()函数。在调用new()函数时,其会先开辟空间,且伴随成员变量的声明和初始化,继而进入new()函数体执行语句。new()函数定义时不能指定返回类型,而在调用时其返回的是该对象的句柄。

关键词:

new函数,initialization

避坑指南:

在定义子类时,如果不实现new()函数,那么隐式声明的new()函数不带有任何参数,这可能会与父类new()函数的参数不一致。子类与父类的new()函数参数不一致本身不会有问题,但需要考虑在子类new()函数中如何正确地调用父类new()函数。一般情况下,子类应该显式地调用父类的new函数(以及正确地传入参数),即super.new(),否则可能会遇到编译错误。

参考代码: sv_subclass_new_def.sv

阅读手记: R9caiyinJgVXCVAjGmOeUBQoNxJa5Ojqdxz0UuQ9ovLIUSd06A72s2c8QdDh36iB

点击中间区域
呼出菜单
上一章
目录
下一章
×