問題タブ [static-binding]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
binding - アーリーバインディングとレイトバインディングの違いは何ですか?
アーリーバインディングとレイトバインディングの違いは何ですか?
c# - C# の非仮想メソッド、静的バインディング、およびインターフェイス
非仮想メソッドは静的にバインドされていることを理解しています。つまり、私が理解している限りでは、どのメソッドがどのオブジェクトで呼び出されるかについて、コンパイル時にそれ自体が認識されていることを意味します。この決定は、オブジェクトの静的タイプに基づいて行われます。私を混乱させているのは、( classではなく)インターフェイスと静的バインディングです。
このコードを考えてみましょう。
デモコード: http://ideone.com/JOVmi
を理解していLine 1
ます。コンパイラは、 の静的型が であることを知っているため、b.f()
が呼び出されることを知ることができます。B.f()
b
B
しかし、コンパイラはコンパイル時にどのようia.f()
に を呼び出すかをどのように決定するのA.f()
でしょうか? オブジェクトの静的タイプは何ia
ですか? そうじゃないIA
?しかし、それはインターフェースであり、の定義はありませんf()
。では、なぜそれが機能するのですか?
ケースをより不可解にするために、次のstatic
方法を考えてみましょう。
コメントにあるように、インターフェイスを実装するクラスが多すぎる可能性があります。その場合、どのメソッドを呼び出すかをIA
コンパイルで静的に決定するにはどうすればよいでしょうか? ia.f()
つまり、次のように定義されたクラスがあるとします。
ご覧のとおりC
、 は とは異なり、からの派生に加えてB
実装しています。つまり、ここでは動作が異なります。IA
A
デモコード : http://ideone.com/awCor
これらすべてのバリエーション、特にインターフェイスと静的バインディングがどのように連携するかを理解するにはどうすればよいでしょうか?
さらにいくつか ( ideone ):
これらすべてと、C# コンパイラによって静的バインディングがどのように行われるかを理解するのを手伝ってください。
java - Javaで、どのサブクラスにも継承されていないメソッドが呼び出された場合、動的バインディングと静的バインディングのどちらが使用されますか?
Javaで、どのサブクラスにも継承されていないメソッドが呼び出された場合、動的バインディングと静的バインディングのどちらが使用されますか?
この特定のケースでは出力に違いがないことはわかっていますが、これを知りたかっただけです。
c++ - 配列の静的バインディングと動的バインディングの違い
私は今スタックオーバーフローで尋ねているのと同じトピックに関するすべての検索結果を読んだところですが、それは私の好奇心の答えではありません.しかし、ここにあります.
質問
1.)私が知っていることから、静的バインディングはコンパイル時に設定され、実行時にそこにあることを意味しますが、動的バインディングは実行時に設定されることを意味します。
2.)私が読んだ動的配列について紹介した本では、実行時に動的配列のサイズを設定できると記載されています。これはこの方法で行われます。
コード
3.) このコードでは、実行時に動的配列サイズを設定できると書かれています。
コード
4.)上記のコードも機能するので、通常の静的配列でも同じことができるので、動的配列の何が特別なのか知りたいです。
5.)動的配列は実行時にメモリを解放できるのに対し、静的配列はそれが特別な理由ではないためですか??
私の質問を読んでくれてありがとう、私が犯した間違いを指摘してください。
c++ - オーバーライドされない仮想関数のバインディングタイプ
virtual function
基本クラスのaがnot overriden
派生クラスにある場合を考えてみます。次にbase class pointer to a derived class object
、仮想関数を使用して呼び出されます。
関数の呼び出しは、コンパイル時に基本クラスの関数に解決されることを理解しています。
質問
関数は派生クラスでオーバーライドされないため、関数呼び出しはコンパイル時に関数実装にバインドされますか、それとも実行時までバインドを遅らせますか?
php - PHP兄弟クラスの静的バインディング
同じ親を拡張する複数のクラスで自動ロードする場合、それらは互いに静的変数を上書きしているように見えます。
以下のコードを使用して、が親クラス$staticvar
でのみ定義されている場合は、も拡張する後続の呼び出されたクラスによって上書きされます。Controller
Foo::$staticvar
Controller
ただし、Foo自体も定義し$staticvar = null;
ている場合は、上書きされません。どうしてこれなの?
System.php
foo.phpがこれである場合:
出力を取得します:
しかし、foo.phpをこれに変更すると:
出力を取得します:
binding - 浅いバインディングと深いバインディング - このプログラムは何を出力しますか?
これを行う方法がわからない...
次の 2 つの製本方法のそれぞれについて、プログラムは何を出力しますか? A) 浅いバインディング B) 深いバインディング
助けてくれてありがとう!
c# - 次の C# プログラムは、静的バインディングと動的バインディングのどちらを使用していますか?
私は次のクラスを持っています:
主な機能1:
主な機能 2:
Main 関数 2 が動的バインディングを使用することを理解しています。
Rectangle クラスの calArea メソッドで override キーワードを new に変更すると、静的バインディングになります。メイン関数 1 はどうですか? 静的/動的バインディングを使用していますか?
php - PHP の遅延静的バインディングが正しく機能しない
PHP で遅延静的バインディングをコーディングして使用しているときに、奇妙な動作を見つけました。static()
親クラスで作成された子オブジェクトは、親のプライベート メソッドにアクセスできます。
次に例を示します。
出力:
これは正しい動作ですか?
c - C (厳密には C であり、C++ ではありません) の静的バインディングと動的バインディングとは何ですか?
重複しないようにこの質問を投稿することについて最初の不安がありました.しかし、多くのキーワードでグーグル検索した後でも、Cの静的および動的バインディングを説明するStackOverflowのリンクを見つけることができませんでした.ただし、C++の質問と回答がありますが、すべてclasses
が明らかに C 向けではないものを含みます。また、StackExchange 以外のリンクは非常に疑わしいものでした。
これら2つのバインディングの厳密な定義と対比を知る必要があります.CIのコンテキストに限定して、回答するのに少し時間がかかるか、私が間違っていて回答されていないことを確認するためのStackOverflowのリンクを教えていただければ幸いです.前に詳しく。
私は次のことについて明確な考えを持っているつもりです:
- C でのバインド。
- C での静的バインディングと動的バインディング。
編集いくつかの簡単なコード スニペットで違いを説明できれば、非常に役立ちます。