今夜もなんとか時間を作ってAB開発を進めています。

 

本日のタスクはConst定義が可能なメンバ、即ち定数メンバの機能を使えるようにすることです。

 

例えば、C++では下記のように書けますね。

class Foo
    const int a;
public:
    Foo()
    :a(100)        //aの初期値として100をセット
    {
        ...
    }

    void spiteful()
    {
        // これはエラー
        a = 200;
    }
    ...
}

 

ABでは、コンストラクタに限り、定数メンバの書き込みを許可する仕様にしています。コンストラクタ内であれば何度でも書き直せてしまうというリスクはありますが、あまり複雑な文法を導入せずに初期化文法を実現することができています。”簡単” が一番です。例えば、上記のC++コードは下記のようなABコードに書き直せます。

 

Class Foo
    Const a As Long
Public
    Sub Foo()
        a = 100        'aの初期値として100をセット

        ...
    End Sub

    Sub spiteful()
        ' これはエラー
        a = 200;
    End Sub

    ...
End Class

 

最近、様々な開発補助ツールに手を出しているので、短時間でターゲットを絞っての開発が可能になりつつあります。良い傾向です。
さぁ、次に時間が空いたときは、2006年最終バージョンのパッケージングでも始めますか!