典型的サブクラスと仮想関数
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/18 09:18 UTC 版)
「Simula」の記事における「典型的サブクラスと仮想関数」の解説
クラス、サブクラス、仮想関数を用いた現実的な例を以下に示す。 Begin Class Glyph ; Virtual: Procedure print Is Procedure print ; Begin End ; Glyph Class Char (c) ; Character c ; Begin Procedure print ; OutChar(c) ; End ; Glyph Class Line (elements) ; Ref (Glyph) Array elements ; Begin Procedure print ; Begin Integer i ; For i:= 1 Step 1 Until UpperBound (elements, 1) Do elements (i) .print ; OutImage ; End ; End ; Ref (Glyph) rg ; Ref (Glyph) Array rgs (1 : 4) ; ! Main program; rgs (1):- New Char ('A') ; rgs (2):- New Char ('b') ; rgs (3):- New Char ('b') ; rgs (4):- New Char ('a') ; rg:- New Line (rgs) ; rg.print ; End ; 上記の例には1つの親クラス(Glyph)と2つのサブクラス(Char, Line)があり、1つの仮想関数と2つの実装がある。メインプログラムから実行を開始する。Simula は純粋仮想関数を持つクラスをインスタンス化できるため抽象基底クラスの概念が無い。これは上記の例にある全てのクラスがインスタンス化できるということである。しかしながら純粋仮想関数を呼び出すとランタイムライブラリエラーを引き起こす。
※この「典型的サブクラスと仮想関数」の解説は、「Simula」の解説の一部です。
「典型的サブクラスと仮想関数」を含む「Simula」の記事については、「Simula」の概要を参照ください。
- 典型的サブクラスと仮想関数のページへのリンク