[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 03/27 01:12 / Filesize : 247 KB / Number-of Response : 962
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【Lua】組み込み系言語総合 その2【Squirrel】



37 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 12:56:24 ]
>>33
普通だよ〜 > C++ メソッド
関数ポインタとか必要な情報をクロージャにバインドさせておいてそれをつかって
呼び出す。sqplus とかとでやってるのと同じ。

後から登録したのが有効なのは順番が逆だよ。_get/_set がスルーしてるんじゃなくて、
squirrel 的に見つからなかったときに初めて _get/_set が呼ばれてる。
_set/_get でスルーした後は、squirrel 側ではメンバ見つからなかったよ例外になるだけ。

squirrel のメンバは常時上書き処理でつぶされるので、メンバの継承はできない。
C++ 側の継承概念を一貫性をもってひきこむにはメソッド化するしかない。
_get/_set で C++のメンバ参照を実現してる場合、そのメタメソッドを直接呼び出せば
元のC++のメンバは見れるけどそれは継承じゃないだろうと。

あと、メタメソッドは機構上、必ずインスタンスに張り付いてるそれが呼び出されるようで、
メタメソッドを上書きしてから親クラスのそれをよびだそうとしても自分のそれが
呼び出されて無限ループになるって罠もあったり <はまった

バインドされた C++ クラスの扱いは、まあ、好みの問題ってことで。
おいらは、squirrel だけで書いたクラスと同感覚で使いたい人

>そういや、Squirrelはプロパティがほしいかも。

↓これがプロパティもどき
>ちなみに_get/_set 自体は、メンバが存在してなかったら、その名前に合致した
>getter/setter を探してそれを呼び出すって形の機能を組んで使ってる

setter / getter 両方あれば読み書き可能プロパティ、getter だけなら
読み込み専用プロパティ、setter だけなら書き込み専用プロパティ、でまあ、ちゃんと
それっぽくできてる。その機構用に使ってるからバインダは勝手につかわんでくれってのもある






[ 続きを読む ] / [ 携帯版 ]

全部読む 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<247KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef