在类的endclass定义中,类的对象是什么意思?

时间:2014-12-06 11:35:38

标签: oop system-verilog uvm

下面的代码(第二行)是什么意思,其中创建了内部类uvm_resource_pool定义,实例(对象)rp?

class uvm_resource_pool;

  static local uvm_resource_pool rp = get();

  // Function: get
  //
  // Returns the singleton handle to the resource pool

  static function uvm_resource_pool get();
    if(rp == null)
      rp = new();
    return rp;
  endfunction

1 个答案:

答案 0 :(得分:4)

这就是单例模式在SystemVerilog中编码的方式。单例模式是一种OOP技术,它确保只构造一个类类型的一个实例。构造函数以及对象rp被声明为local。检索类类型uvm_resource_pool的对象实例的唯一方法是调用静态方法get(),它在第一次调用时构造它,但是下次它将只返回{{ 1}}。这也是如何解决静态类初始化命令fiasco 。您永远不会直接引用静态变量,您总是使用在第一个引用上构造它的get()方法。

相关问题