- 【Delphi】Embarcaderoオッチャ その32【C++ビルダ】 [無断転載禁止]©2ch.net
362 :デフォルトの名無しさん[sage]:2016/07/15(金) 14:25:48.62 ID:NxZmFnhh - 荒れてるか?
|
- 【Delphi】Embarcaderoオッチャ その32【C++ビルダ】 [無断転載禁止]©2ch.net
364 :デフォルトの名無しさん[sage]:2016/07/15(金) 18:01:31.87 ID:NxZmFnhh - 彼のサイトに同じ事書いたけど、>>348は普通の動作。
インターフェース制約はパラメーターがそのインターフェースを実装してる事を強制するのであって、 実装パラメーターをどう渡されるかは別のお話しだね。 TTest.Say〈IPerson〉(Person)とやれば、パラメータはインターフェース参照としてやりとりされるので参照カウント増減するし TTest.Say〈TPerson〉(Person)とすれば、パラメータは通常のオブジェクト参照としてやりとりされるので参照カウントは増減しない。 で、型パラメータを省略すると、まぁ、推論が働いてるんだろう。 TTest.Say(Person)は、 ローカル変数をTPersonで宣言すれば、TTest.Say〈TPerson〉(Person)と同じ動き。 ローカル変数をIPersonで宣言すれば、TTest.Say〈IPerson〉(Person)と同じ動き。 彼のケースでローカル変数をTPersonで宣言してるからTTest.Say〈TPerson〉(Person)と同じ動きに なっただけじゃ。 俺はそもそも、型パラメータ省略できるの知らなかったが、 まぁ、Delphiの場合は、オブジェクト参照とインターフェース参照が混じる場合、 推論使うなって感じかな??
|
- 【Delphi】Embarcaderoオッチャ その32【C++ビルダ】 [無断転載禁止]©2ch.net
365 :デフォルトの名無しさん[sage]:2016/07/15(金) 18:03:38.08 ID:NxZmFnhh - 実装パラメーター
-> 実際、パラメーター
|