作者:小白蒋
所有的努力都是为了做个小白,单纯且快乐~
1、静态变量static的含义
关键词:static,代码static int count=0;
就是把count变成实参,可以全局调用;跟形参不一样,不会用完就释放掉;
2、local和protected的区别
(1)local
就是本地变量,代码local int DONE
,比如在父类中定义DONE
,那么在子类中就不能调用DONE
;
(2)protected
就是保护变量,在父类中定义protected nt DONE
,这样定义,子类中就可以调用DONE
,但是外部代码
仍然不能操作该变量
3、多态、virtual的理解及代码演示
多态的特性: 通过父类的变量可以使用子类的对象,通过基类的变量直接引用子类的方法。
关键字: virtual
代码演示:
vitual_method.sv
program class_t;
class A;
virtual task disp();
$display("this is class A");
endtask
endclass
class EA extends A;
task disp();
$display("this is Extend class A");
endtask
endclass
program main;
EA my_ea;
A my_a;
initial begin
my_a = new();
my_a.disp();
my_ea = new();
my_a = my_ea;
my_a.disp();
end
endprogram
运行代码vcs -R -sverilog virtual_method.sv
结果:
代码的理解:因为定义了virtual task
,所以可以通过父类使用子类的对象,直接使用子类的方法。
一句话概括:虚方法看对象,实方法看句柄。