Code Fix

上級クラス変数 @@var はサブクラスとも共有されてしまう › パターン2

クラス変数 @@var はサブクラスとも共有されてしまう

@@で始まるクラス変数は、そのクラスだけでなく継承したサブクラスとも1つの値を共有します。

 1  class Visitor
 2  ______________________________________________________________________________________________
                                                   ^
 3  end
 4  
 5  class VipVisitor < Visitor
 6  end
 7  
 8  Visitor.increment
 9  Visitor.increment
10  puts VipVisitor.count
出力: 2

空欄を埋めて実行を通す

広告
広告スロット(未設定)

クラス変数 @@var はサブクラスとも共有されてしまう

サブクラスごとに独立したカウンタなどを持たせたいつもりで@@変数を使うと、片方のクラスでの変更がもう片方にまで影響します。

このエラーの解説と類題をまとめて見る →

広告
広告スロット(未設定)