rhs, lhs
lhsとrhs、という識別子にぶつかることがある。たとえばVBならCFooというクラスを定義する。メンバはプロパティがひとつ。グローバル変数である。
'// CFoo.cls
Option Explicit
Public Foo As String
それから、CBarというクラスを定義する。CFooをインターフェースとしてインプリメントする。オブジェクトドロップダウンリストからCFooを選択すると、実装すべきインターフェースのスケルトンが作成される。
'// CBar.cls
Option Explicit
Implements CFoo
Private Property Let CFoo_Foo(ByVal RHS As String)
End Property
Private Property Get CFoo_Foo() As String
End Property
ほらでてきた。Property Let CFoo_Foo
の引数に注目。これはright-hand side、すなわち「右辺値」を意味する慣例的な識別子であるらしい。
演算子のオーバーロードを行うC++などでは、もっと頻繁に出てきます。たとえば、複素数クラスに+演算子を定義するような、こんなサンプル。
class Complex { public: Complex( int real, int img ); friend Complex operator+( Complex lhs, Complex rhs ); private: int real, img; }; Complex operator+( Complex lhs, Complex rhs ) { return Complex( lhs.real + rhs.real, lhs.img + rhs.img ); }
lhsもrhsもありますね。それぞれ、左っかわ、右っかわという意味です。
この演算子は実際には、下のように使います。Aがlhs、Bがrhsとして渡される関数みたいな感じです。
int main( void ) { Complex A(3, 2), B(5, 6), C; C = A + B; return 0; }
トラックバック
- このエントリーにトラックバック:
- http://frog.raindrop.jp/cgi-bin/mt/mt-tb.cgi/219
コメント