問題タブ [constructor-overloading]
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.
c# - WCFを介してクラスのオーバーロードされたコンストラクターを取得する方法は?
クラスでオーバーロードされたコンストラクターを WCF クライアント/コンシューマーに渡すにはどうすればよいですか?
基本的に、WCF は、私の B クラスにはデフォルトのみがあり、引数/空のコンストラクターはないと考えています。クライアントがオーバーロードされたコンストラクターを呼び出せるようにするにはどうすればよいですか?
c++ - 参照パラメーターの型に基づいてコンストラクターをオーバーロードできますか?
以下のようにコンストラクターをオーバーロードできないことはわかっています (唯一の違いは初期化リストです)。
しかし、コンストラクターを次のようにオーバーロードしたいとします。
つまり、別のパラメータ タイプに基づいてone as reference type
、as normal type
私は私の古い質問を参照しています: クラスメンバー関数のオーバーロード
それは達成できますか?
私のコードは次のとおりです。
私が得ているエラーは次のとおりです。
オーバーロードされたコンストラクターの 2 つのバージョンを区別できるように、コンストラクターをキャストするにはどうすればよいですか?
java - Java 7 API の FileInputStream の 2 つのオーバーロードされたコンストラクターについて興味深いこと
FileInputStream について説明する前に、オーバーロードされた 2 つの完全に有効なメソッドがあるにもかかわらず、コンパイラが混乱し、特定の入力に応答してコンパイル時エラーを報告するシナリオから始めます。
メソッドは次のとおりです。
メソッドの使用を示す完全なコードは次のとおりです。
int リテラル値は double 型の変数に渡すことができるため、どちらのメソッドもリテラル値2および3の候補として受け入れられるため、コンパイラはどちらのメソッドを選択するかを決定できません。
ここで、上記の概念を取り上げて、Java 7 API を FileInputStream クラスにさらに掘り下げ、そのクラスの 2 つのオーバーロードされたコンストラクターについて調べると、混乱します。
- public FileInputStream(String name) は FileNotFoundException をスローします {.....}
- public FileInputStream(File file) が FileNotFoundException をスローする {.....}
Java 7 API ソース コードによると、引数として String オブジェクトを取るバージョンの定義は次のとおりです。
ここで、「name」が実際に null の場合、this(name != null ? new File(name) : null); this(null)に評価されます。これは、 FileInputStream(null);の呼び出しと同等です。ただし、FileInputStream(String)とFileInputStream(File)の両方が、null 値で呼び出される可能性のある選択肢になります。曖昧さを生みませんか?それで、そのためのコンパイル時エラーはありませんか?
最終的に FileNotFoundException が発生することは理解していますが、それは後で発生する別の問題です。その前に、あいまいさはどのように解決されますか?
c++ - 派生クラスでオーバーロードされたコンストラクター
基本クラスManager
と派生クラスWorker
があり、継承が適切に機能しているようです-デフォルトのコンストラクターを使用して派生クラスの新しいオブジェクトを作成し、適切に出力できます。しかし、派生クラス ( ) のオーバーロードされたコンストラクターを作成したいのですWorker
が、コンパイル エラーが発生しているようです。答えを探すのに疲れましたが、見つかりませんでした。コンパイルでWorker
id、name、salary フィールドがないと表示されるのはなぜですか? 本で派生クラスを作成し、そのための ctors を作成しました。
Manager
ヘッダ:
Manager
cpp:
Worker
ヘッダ:
Worker
cpp:
c++ - このコンストラクターのオーバーロードが機能しないのはなぜですか? (テンプレートと typedef が発生)
VS2012 をコンパイラとして使用しています。
まずtypedef
、不足によるtemplate aliasing
次に、このクラスのオブジェクトをインスタンス化します。
次のようなクラスの例を使用します。
したがって、実際のケースは次のようになります。
しかし、コンパイラはエラーを出します:
コンパイラが 2 番目のコンストラクタを認識していないように見えますが、なぜですか?
余分なTYPE* p
ものは、コンパイラに実際の型を与える試みです。typedef
型のようなものHvVector<TYPE>::rt
は、明確に指定しない限り、テンプレート引数の型を推測できないためです。
編集:
で問題なく動作するオンライン テスト コードを次にgcc 4.8.1
示します。これは VS2012 の問題だと思います: ideone.com/YawsaB