








仮想関数
C++ 用語?--sumim
- 普通(?)の言語でいえば仮想(バーチャル)メソッドかな。
- いずれにせよ仮想かどうかを区別することに意味がある言語に限っての話。JavaもSmalltalkもRubyも全てのメソッドが仮想になる言語。 -戯
- 「仮想になる」とは、「多態が使える」という意味。C++やDelphiでは、明示的に仮想だと宣言してないメソッド(関数)は、多態しない。
- 「多態しない」とは、メソッド名と呼び出されるメソッド実装との対応が、オブジェクトの型じゃなく変数の型で決まる、という事。つまり動的じゃなくソースの字面(レキシカル)そのもので決まるということ。
C++で遊ぼう「静的仮想関数」編
- (静的な奴はまた結構違う話題なので、順番を入れ替えさせてもらいました。別ページのほうが良いくらいかな?)
- お疲れ様ですねC++。ちなみにDelphiには、静的仮想関数(C++用語を使わず言えば、仮想クラスメソッド)が最初から有ります。コンストラクタ自体がソレに成り得ます。てゆーか標準のフレームワーク(VCL)でも使いまくりです。 -戯
- なお、クラス(所謂オブジェクトではなく)自体を変数に代入できる言語でないと、あんまり有り難味が無いです。
- ここらへんは、普通の多態が、オブジェクトを変数とかに代入しないと面白くないのと、同様です。
このページを編集 (1119 bytes)
 |
以下の 2 ページから参照されています。 |
This page has been visited 9034 times.