問題タブ [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.

0 投票する
7 に答える
586 参照

.net - インターフェイスをコンストラクターのパラメーターとして受け入れますか?

クシシュトフの推奨事項はコンストラクターに適用されますか? もしそうなら、どのようにそれを適切に実装しますか?

出力とプロパティには Collection、ReadOnlyCollection、または KeyedCollection を使用し、入力にはインターフェイス IEnumerable、ICollection、IList を使用することをお勧めします。

例えば、

0 投票する
4 に答える
17765 参照

c++ - コンストラクター内から「this」を関数に渡しますか?

クラス コンストラクター内から "this" をポインターとして関数に渡し、それを使用してコンストラクターが戻る前にオブジェクトのメンバーを指すことはできますか?

アクセスされたメンバーが関数呼び出しの前に適切に初期化されている限り、これを行うのは安全ですか?

例として:

p>

これはうまくいかないと思っていましたが、うまくいくようです。これは標準的な動作ですか、それとも未定義の動作だけですか?

0 投票する
9 に答える
17620 参照

java - 基本クラスのコンストラクターで仮想メソッドを呼び出す

子クラスが有効な状態にない可能性があるため、基本クラスのコンストラクターから仮想メソッドを呼び出すことは危険な場合があることを知っています。(少なくとも C# では)

私の質問は、仮想メソッドがオブジェクトの状態を初期化するものである場合はどうなりますか? 最初にオブジェクトを作成してから状態をロードするのは良い習慣ですか、それとも2段階のプロセスであるべきですか?

最初のオプション: (コンストラクターを使用して状態を初期化する)

2 番目のオプション: (2 段階のプロセスを使用)

最初のメソッドでは、コードのコンシューマは 1 つのステートメントでオブジェクトを作成および初期化できます。

2 番目の方法では、コンシューマーはオブジェクトを作成してから状態をロードする必要があります。

0 投票する
5 に答える
8407 参照

c# - このクラスをジェネリックにする方法は? (.NET C#)

私のクラスには次のコアがあります。

「SqlConnection」をハードコーディングしたくありません。だから私はそれをジェネリッククラスにすることを考えました(IDbConnectionクラスを受け入れます)。しかし、私はそれを行う方法がわかりません。誰でも助けることができますか?

0 投票する
6 に答える
1483 参照

c++ - *あなた*は C++ ABC コンストラクターを何に使用しますか?

ここの人々は、フィールドで C++ 抽象基本クラス コンストラクターを何に使用しますか? 私は、データ メンバーも非純粋な仮想メンバーも持たない純粋なインターフェイス クラスについて話しています。

ABC コンストラクターを有用な方法で使用するイディオムを誰かが示すことができますか? それとも、ABC を使用して、空、インライン、および保護されたままのインターフェイスを実装するという性質に固有のものなのでしょうか?

0 投票する
15 に答える
243611 参照

php - 関数 __construct は何に使用されますか?

__construct授業で気づいたことはたくさんあります。ちょっと読んだりネットサーフィンしたりしましたが、納得できる説明が見つかりませんでした。私はOOPを始めたばかりです。

誰かがそれが何であるかについての一般的な考えを私に教えてくれるかどうか疑問に思っていました.PHPでどのように使用されるかの簡単な例はありますか?

0 投票する
1 に答える
10424 参照

c++ - 組み込み型のデストラクタ (int、char など)

C++ では、次のコードでコンパイラ エラーが発生します。

このコードはほぼ同じです。int を別の型に typedef すると、魔法のようなことが起こります。

2 番目のコードが機能するのはなぜですか? int は型定義されているという理由だけでデストラクタを取得しますか?

なぜこれをやりたいのか疑問に思っている場合: これは、C++ コードのリファクタリングに由来します。標準のヒープを削除し、自作のプールに置き換えます。これには、placement-new とデストラクタを呼び出す必要があります。プリミティブ型のデストラクタを呼び出すのは役に立たないことはわかっていますが、後で POD を実際のクラスに置き換える場合に備えて、コード内にデストラクタが必要です。

裸の int は機能しないが、typedef の int は機能することがわかったのは、かなりの驚きでした。

ところで-テンプレート関数を含むソリューションがあります。テンプレート内で typedef するだけで、すべて問題ありません。

0 投票する
5 に答える
4054 参照

c++ - C++ クラスのデフォルト コンストラクタ

以前に、これが悪いと考えられる理由を尋ねました。

これで、タイプ Example を返す代わりに関数プロトタイプを作成していることがわかります。ただし、g ++およびMS VC ++で機能する理由はまだわかりません。

私の次の質問は、上記を使用することです。この呼び出しは有効ですか?

? それと単純に Example e() を呼び出すことの違いは何ですか??? 私が知っているように、それは関数プロトタイプですが、一部のコンパイラはそれを許し、デフォルトのコンストラクターを呼び出すことを許可しているようです? 私もこれを試しました:

だから私は少し混乱しています:(これが何百万回も聞かれたらごめんなさい。

0 投票する
4 に答える
5935 参照

java - javaで、スーパークラスにもプライベートコンストラクターがあるプライベートコンストラクターを持つクラスを作成するにはどうすればよいですか?

例として:

それはコンパイルエラーです。クラスは、少なくとも、そのスーパークラスのデフォルト コンストラクターを暗黙的に呼び出す必要があります。この場合、これはFooには表示されません。

代わりにBarからObjectのコンストラクターを呼び出すことはできますか?