0
Ich habe eine Klasse mit einem Element in der Klasse, die eine andere Klasse ist. Muss ich den Konstruktor des Elements innerhalb des Konstruktors für die Klasse selbst aufrufen? Zum Beispiel:Müssen Sie den Konstruktor für Klassenobjekte in Systemverilog aufrufen?
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
Ist der Konstruktoraufruf in „my_class“ benötigt oder können Sie nur Folgendes tun:
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
Also das zweite Code-Snippet sollte nicht ausgeführt werden, richtig? – InternetDPS
Es wird kompiliert und gestartet, bis es versucht, auf "A.B" zuzugreifen. Dann erhalten Sie einen Laufzeit-Referenzfehler, weil die Klassenvariable 'A' ** null ** ist. –