ホワット・ア・ワンダフル・ワールド
私は知識に何ものかを付け加え,また他の人々がより多くのものを付け加える手助けをした --- G.H.ハーディ
プロフィール
FC2カウンター
ブロとも申請フォーム
この人とブロともになる
C++ は勝手にポインタの値が変わる素敵言語です
2008/01/27(日) 02:05:07
へー。多分vtblの絡みなんだろうけど、しかし何故 b だけ違うアドレスになるんだろう。むしろ、 a と c のポインタが同一であることに注目するのかしら。
ただし、この方法は単一継承であればこそうまくいくのであって、多重継承ではメソッドの添字が一意に決まらないためうまくいきません。そこで、C++では、アップキャストの際にこっそりポインタの値を変えるという豪快な解決法を取っています。たとえばAとBを継承したクラスCがあるとき、AとCは「メインの継承関係」として単一継承の際と同じ方法が取れますが、CがBにアップキャストされた際には、ポインタ自体を、Bのvtableがあるアドレスに変換します。
最近のコメント
リンク
このブログをリンクに追加する
最近のトラックバック
人生の残り日数
日本人男性の平均寿命は 28700日.
RSSフィード
カテゴリー
FC2Ad