Bird
0
0

Why is using a class variable (@@count) a bad idea, and what is a better alternative?

hard📝 Application Q8 of 15
Ruby - Class Methods and Variables
You want to track the number of instances created for a class and all its subclasses separately without interference. Why is using a class variable (@@count) a bad idea, and what is a better alternative?
AClass variables are private to each class; use global variables instead.
BClass variables cannot be incremented; use instance variables instead.
CClass variables reset on subclass creation; use constants instead.
DClass variables are shared across subclasses causing interference; use class instance variables instead.
Step-by-Step Solution
Solution:
  1. Step 1: Understand class variable sharing problem

    @@count is shared among class and subclasses, so counts mix and interfere.
  2. Step 2: Identify better alternative

    Class instance variables (@count) belong to each class separately, avoiding interference.
  3. Final Answer:

    Class variables are shared across subclasses causing interference; use class instance variables instead. -> Option D
  4. Quick Check:

    Use class instance vars for separate subclass counts [OK]
Quick Trick: Use @count on class, not @@count, for separate subclass tracking [OK]
Common Mistakes:
  • Using @@count expecting separate subclass values
  • Using global variables which pollute namespace
  • Confusing constants with counters

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More Ruby Quizzes