【问题标题】:Do you need to call the constructor for class objects in Systemverilog?是否需要在 Systemverilog 中调用类对象的构造函数?
【发布时间】:2017-01-10 19:41:38
【问题描述】:

我有一个类,该类中的一个元素是另一个类。我是否需要在类本身的构造函数中调用元素的构造函数?例如:

class my_class;
  element_class A;

  function new ();
    A = new(123);
  endfunction
endclass


class element_class;
  int B;

  function new(int init_value);
    B = init_value;
  endfunction
endclass

是否需要“my_class”中的构造函数调用,或者您可以执行以下操作:

class my_class;
  element_class A;

  function new ();
    A.B = 123;
  endfunction
endclass


class element_class;
  int B;

  function new(int init_value);
    B = init_value;
  endfunction
endclass

【问题讨论】:

    标签: system-verilog


    【解决方案1】:

    SystemVerilog 中的所有类都需要调用它们的构造函数,然后才能引用该类对象的任何成员。

    【讨论】:

    • 它将编译并运行直到它尝试访问A.B。然后你会得到一个运行时引用错误,因为类变量Anull
    猜你喜欢
    • 2014-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-25
    • 2021-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多