Systemverilog(グリーンブック)第5章-クラスとオブジェクト(2)クラスのメンバー

 クラスのメンバーはカプセル化されています。デフォルトのメンバータイプはpublicで、制限されたメンバータイプは保護されており、ローカルです。

class clock 
    local bit is_summer = 0;
    local int nclock = 6;
    function int get_clock();
        if(!is_summer) return this.nclock;
        else return this.nclock+1;
    endfunction
    function bit set_summer(bit s);
        this.is_summer = s;
    endfunction
endclass


clock ck;
    initial begin
        ck = new();
        $display("now tome is %0d", ck.get_clock());
        ck.set_summer(1);
        $display("noe time is %0d", ck.nclock);
end

 [6、エラー]

分析手順:

クロックckは最初にハンドルckを宣言し、次にオブジェクトnew()を作成します

ck.get_clock関数はオブジェクトのメソッドを呼び出しますが、ckは外部ハンドルに属しており、ローカル変数nclockにアクセスできません。ただし、ローカル変数には関数get_clockを介してアクセスできます。

クラスのメンバーの特徴は次のとおりです。

 

公開された14元の記事 ウォン称賛10 ビュー20000 +

おすすめ

転載: blog.csdn.net/Jay_who/article/details/105549511