問題タブ [constructor]
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++ - C++ コンストラクターのデフォルト パラメーター
既定のパラメーターを使用するクラス コンストラクターを使用することは良い習慣ですか、それとも別のオーバーロードされたコンストラクターを使用する必要がありますか? 例えば:
どちらのバージョンでも動作するようです。例:
どのスタイルが好みまたは推奨されますか?その理由は?
c# - default(Foo)、Foo.Empty、またはnullを使用する必要がありますか?
そのため、 C#を使用default(Foo)
すると、クラスの認識された「まだ入力されていない」/空のインスタンスを取得できるようになりました。これがまったく同じかどうかはわかりnew Foo()
ません。多くのライブラリクラスFoo.Empty
は、同様のインスタンスを返すプロパティも実装しています。そしてもちろん、どの参照型もを指すことができますnull
。本当に、違いは何ですか?いつ正しいか間違っているか?より一貫性のある、またはより良いパフォーマンスは何ですか?オブジェクトが概念的に「プライムタイムの準備ができていない」かどうかを確認する場合、どのテストを使用する必要がありますか?誰もが持っているわけではありませんFoo.IsNullOrEmpty()
。
design-patterns - 静的ファクトリメソッドとインスタンス (通常の) コンストラクター?
両方が利用可能な言語では、インスタンス コンストラクターとインスタンスを返す静的メソッドのどちらが好きですか?
たとえば、 aString
から aを作成している場合char[]
:
String.FromCharacters(chars);
new String(chars);
java - Class.newInstance()が「悪」なのはなぜですか?
Ryan Delucchiは、 Tom Hawtinの回答に対するコメント#3でここに質問しました。
Class.newInstance()が「悪」なのはなぜですか?
これは、コードサンプルに対応しています。
それで、なぜそれは悪なのですか?
c++ - コンストラクターのコロンの後のメンバー変数リストは何に適していますか?
私はこのC++オープンソースコードを読んでいて、コンストラクターに来ましたが、それを取得できません(基本的に、C ++を知らないためです:P)
私はCとJavaをよく理解しています。
私が「推測」できる限り、最初の行はコンストラクター名のみを宣言しています。「::」は私には「所属」のように聞こえます。そして、{}の間のコードは、それ自体がコンストラクター本体です。
パラメータの後にあるものを「考え」、最初の「{」はメソッドのデフォルトパラメータなどのようなものですが、Web上で合理的な説明が見つかりません。例で見つけたC++コンストラクターのほとんどは、Javaのものとほとんど同じです。
私は私の仮定で正しいですか?「::」はに属するようなものであり、paramsとbodyの後のリストは「defaultargs」などのようなものですか?
更新: 回答ありがとうございます。それらをメソッドと呼んでもいいですか?(私はノーだと思います)そしてコンストラクター本体内でそれらを呼び出すことの違いは何ですか
c++ - C++ の浅いコピーに関する質問
intポインターメンバー変数「i」を持つ構造体「s」があるとします。s のデフォルト コンストラクターで i のヒープにメモリを割り当てます。後で、コードの他の部分で、s のインスタンスを値で関数に渡します。ここで浅いコピーを行っていますか?コピー コンストラクター、代入演算子、または s の何も実装していないと仮定します...ただの既定のコンストラクターです。
php - PHPのコンストラクターの__construct()とSameAsClassName()
__construct()
PHPのコンストラクタのクラス名の代わりに使用する利点はありますか?
例 ( __construct
):
例 (名前付き):
メソッド (最初の例)を持つこと__construct
は、PHP 5 以降で可能です。
PHP バージョン 4 からバージョン 7 までは、クラスと同じ名前のメソッドをコンストラクタとして持つことができます (2 番目の例)。
c# - C#のインラインまたは静的コンストラクターでの静的変数の初期化の違い
次のように静的メンバーをインラインで初期化することの違いは何ですか?
または、次のように静的コンストラクター内で初期化します。
c# - コンストラクタを継承するには?
多くのコンストラクターと仮想メソッドを持つ基本クラスを想像してください
そして今、仮想メソッドをオーバーライドする子孫クラスを作成したいと思います:
そして、さらにいくつかのことを行う別の子孫:
すべてのコンストラクターを Foo から Bar と Bah にコピーする必要がありますか? そして、Foo でコンストラクターの署名を変更した場合、Bar と Bah でそれを更新する必要がありますか?
コンストラクタを継承する方法はありませんか? コードの再利用を促進する方法はありませんか?
c++ - コンストラクターの初期化リストをテンプレート クラスで使用できますか?
C++ テンプレートに関するほとんどの本は、テンプレート クラスのコンストラクターで初期化リストを使用できるかどうかについて何も述べていません。
たとえば、次のようなコードがあります。
コンストラクターを置き換えることはできますか