# Drawing a hierarchy w.r.t. class (instance) variables

**URL:** <https://www.ruby-forum.com/t/drawing-a-hierarchy-w-r-t-class-instance-variables/74581>\
**Category:** Ruby\
**Created:** [February 28, 2006, 7:44am UTC](https://www.ruby-forum.com/t/drawing-a-hierarchy-w-r-t-class-instance-variables/74581 "2006-02-28T07:44:31Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![pool007](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/3bc359/32.png) [@pool007](https://www.ruby-forum.com/u/pool007)\
**Post date:** [February 28, 2006, 7:44am UTC](https://www.ruby-forum.com/t/drawing-a-hierarchy-w-r-t-class-instance-variables/74581/1 "2006-02-28T07:44:31Z")

</div>

Hi group.

Recently, I’ve read

[http://www.visibleworkings.com/little-ruby/Chapter3.pdf](http://www.visibleworkings.com/little-ruby/Chapter3.pdf)  
[http://www.ruby-doc.org/docs/Understanding%20Ruby’s%20Object%20Model/ChrisPine\_UROM.ppt](http://www.ruby-doc.org/docs/Understanding%20Ruby's%20Object%20Model/ChrisPine_UROM.ppt)  
and PickAxe.

I’m trying to draw a picture of hierarchy for the following:

class Foo  
@@k = 20  
end

class Bar \< Foo  
@j = 10

```
def initialize
    @i = 0
end

```

end

b = Bar.new

I understand how to draw hierarchy if it were not for class variables:

```
        Class
          ^
          |
  +-------+
  | |
(Foo) <-(Bar)
  ^ ^ - Bar's class methods
  | |
 Foo <- Bar
          ^ - j and Bar's instance methods
          |
          b
            - i

```

In this picture parenthesis represents meta class. Upward arrows  
represents ‘class’, while leftward arrows represents ‘inherits’.

But, I have no idead where the class variable k should belong to. k is  
shared by Foo and Bar which menas that if k is modified at Foo, then  
the value of k at Bar will be modified also. That being the case, does  
k must be drawn under (Foo)? or Class?

Thanks.

- Minkoo S.
