On 26/03/2008, Edwin Pratomo <[EMAIL PROTECTED]> wrote:

> ruby menyediakan access control public, private, protected. c++ juga
>  menyediakan access level public, private, protected. tapi di c++ ada friend
>  untuk mendeklarasikan bahwa sebuah class lain boleh mengakses private,
>  protected methods. misalkan class Foo punya private method foo(), maka class
>  Bar yg adalah friend dari Foo boleh mengakses Foo.foo().

boleh ada contoh source code yang C++ nya?

>  di ruby tidak ada friend, kenapa? karena tidak perlu, karena access control 
> di
>  ruby sifatnya advisory. private methods dng gampang diakses dari luar, jika
>  diperlukan.

apa artinya "sifatnya advisory" ? (nyerah googling[1])

>  class Foo
>   def self.foo
>     puts "foo"
>   end
>   class << self
>     private :foo
>   end
>  end
>
>  class Foo

sampai di baris ini, kalau saya bilang itu karena ruby bersifat open
class. kena bagian yang saya suka nih. tapi memang argumen saya nggak
kuat mutlak, karena saya sendiri boleh menyanggah argumen tsb, ya
walau bersifat open tapi kan apa harus private berubah jadi public?!
makanya saya di atas nanyaken code asli yang dari C++ mana.

>   def self.another_foo
>     foo
>   end
>  end
>
>  Foo.foo # private method `foo' called for Foo:Class (NoMethodError)
>  Foo.another_foo # foo
>
>  mungkin ada yg bertanya, gunanya utk apa?
>  sebuah contoh misalkan kita mau membuat unit test utk private methods.
>  i.e. class TestFoo < Test::Unit::TestCase butuh mengakses Foo.foo
>
>  rgds,
>  Edwin.

links:
1. 
http://www.google.com/search?client=safari&rls=en-gb&q=advisory+methods&ie=UTF-8&oe=UTF-8

-- 
blog: http://tinyurl.com/2bjgvn,
ruby: http://www.ruby-lang.org/id/about

I always thought Smalltalk would beat Java, I just didn't know it
would be called 'Ruby' when it did. -- Kent Beck.

Kirim email ke