#はじめに
C++のクラスを実現しようとしたのですが、パッケージだのなんだので、「それっぽいもの」が出来上がりました。
詳しいことはまだわかっておりませんが、一応メンバ関数のつもりが動いたのでよしとしました。
メンバ変数については、宣言と同時に初期化してしまっていますが、できたのでとりあえずは良しとしました。
それと、IDEのほうでもファイル分割ができました。
手順としては、
- IDE上で
src
フォルダを右クリック -
New
->Ada Package
- 名前を決めて
OK
- メインファイルから
with
use
で呼ぶ
で、いけました。
#ソースと結果
main.adb
with zisaku_package1;
use zisaku_package1;
procedure main is
hennsuu : Integer := 0;
obuzyekuto : zisaku_package1.rekoudo;
begin
hennsuu := zisaku_package1.mennba_function(20);
end main;
zisaku_package1.adb
with Ada.Text_IO;
use Ada.Text_IO;
package body zisaku_package1 is
function mennba_function(hikisuu : Integer) return Integer is
begin
Ada.Text_IO.Put_Line("member function 1");
return (hikisuu + 100);
end mennba_function;
end zisaku_package1;
zisaku_package.ads
package zisaku_package1 is
type rekoudo is private;
function mennba_function(hikisuu : Integer) return Integer;
private
type rekoudo is
record
mennba_hennsuu1 : Integer := 0;
mennba_hennsuu2 : integer := 0;
end record;
end zisaku_package1;
実行結果 : member function 1
メンバ関数が値を返しているのですが、これを表示しようとしたのですが、忘れてしまいました。
記事を書いているときに気が付いたので、そのままにしておきます。
#最後に
年が明けました。
2019年もよろしくお願いします。
#日記一覧へ
Ada言語を習得する日記一覧