「クラスはどう作ってどう使うの?」の編集履歴(バックアップ)一覧に戻る

クラスはどう作ってどう使うの? - (2010/01/11 (月) 03:05:14) のソース

クラスは、次のように作る。

 Class C
 
 private:
 
     A As Long
 
 public:
 
     Sub C()
         A=1
     End Sub
 
     Sub ~C()
     End Sub
 
     Function Member1() As Long
         Member1=A
     End Functoin
 
 End Class

ここでクラス名がCなら、コンストラクタ(生成時に1度だけ呼ばれる関数)の名前はC、デストラクタ(開放時に1度だけ呼ばれる関数)の名前は~Cとなる。

public:と書いてあるが、これはpublicアクセスの開始を宣言するもので、クラスの中からは勿論、クラスの外からも使うことが出来る事を意味する。
コンストラクタとデストラクタはこのpublicアクセスの中で定義する必要がある。

一方private:と書いてあるが、これはprivateアクセスの開始を宣言するもので、このクラスの外からは一切参照できなくなる。
外から勝手に書き換えられたくない場合に用いる。

他にprotected:と書くものがあり、これはprotectedアクセスの開始を宣言するもので、protectedアクセスの中の変数や関数は、このクラスとこのクラスの派生先のクラスで参照できる。ただしそれ以外の場所からは参照できない。

ちなみにClass開始時はprivateアクセスになるので、先頭に書く場合はprivate:は省略できる。

使う時はこのクラスの型か、そのポインタ型等として宣言する。

 Dim A As C
 Dim B As Long
 B = A.Member1()

 Dim A As *C
 Dim B As Long
 A = new C
 B = A->Member1()
 delete A

等と書ける。尚、ポインタでない型として宣言した場合、宣言した直後にコンストラクタが呼ばれる。

----
継承の例
 #N88BASIC  
   
 Class Idol  
 Protected  
  charisma As Long 
  looks As Long 
 Public  
  Sub talk() 
   Print "アイドル"
  End Sub 
 End Class  
   
 Class KAT_TUN  
  Inherits Idol 
 Public  
  Sub talk() 
   Print "田中聖"
  End Sub 
 End Class  
   
 Dim Kouki As KAT_TUN  
   
 Kouki.talk()