Code Fix

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

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

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

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

空欄を埋めて実行を通す

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

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

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

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

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