next up previous contents
Next: 12.4 メソッドのクラス束縛 Up: 12. クラスの継承 Previous: 12.2 継承メンバの参照

12.3 クラス束縛演算子

クラス束縛演算子は、あるインスタンスに対して、どのクラスで定義さ れたメンバをアクセスするかを限定するための演算子です。クラス束縛演算子 は、

インスタンス名::クラス名

と書きます。この時のクラス名は、継承関係内のクラス、つまり、インスタン ス生成元クラス、あるいは、そのスーパークラスのいずれかでなければなりま せん。このクラス束縛演算子を摘要することにより、適用されたインスタンス は、一時的に「クラス名」で示されるクラスのインスタンスと見なされます。

例えば、前節に示した継承関係があったときに、


var secondChild = new Child ;

secondChild::GrandFather->name = "Tadasaburou" ;

とすると、GrandFatherクラスで定義されたメンバnameに値がセットされていま す。

次の例では、Childクラスの新たなメソッドSetAllを示します。これは、すべ てのnameメンバに名前をセットするものです。この例では、thisに対し てクラス束縛演算子を摘要しています。


method Child::SetAll (name1, name2, name3) {

name = name1 ;
this::Father->name = name2 ;
this::GrandFather->name = name3 ;
}

上記例で、

name = name1 ;

は、

this::Child->name = name1 ;

と書くこともできます。

また、thisを省略して、


method Child::SetAll (name1, name2, name3) {

::Child->name = name1 ;
::Father->name = name2 ;
::GrandFather->name = name3 ;
}

と書くこともできます。


next up previous contents
Next: 12.4 メソッドのクラス束縛 Up: 12. クラスの継承 Previous: 12.2 継承メンバの参照
Tetsuo Ono
1998-11-05