問題タブ [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 投票する
2 に答える
4340 参照

java - java列挙型コンストラクタでvarargsを使用できますか?

これに問題はありますか?やらない理由はありますか?

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

c++ - メソッドの結果をパラメータとして C++ の基本クラス コンストラクタに渡す方法は?

私はこのようなことを達成しようとしています:

foo が初期化される前に派生コンストラクターで bar() が呼び出されるため、これは私が望むようには機能しません。

foo をパラメーターとして取る bar() に似た静的関数を追加することを検討しました-そしてそれを初期化リストで使用しましたが、これを掘り下げるために使用できる他の手法があるかどうか尋ねたいと思いました。 ..

編集: フィードバックをお寄せいただきありがとうございます。ここでは、静的関数を処理する方法を示します。静的関数と非静的関数の間のオーバーロードが巧妙すぎるかどうかはわかりませんが...

0 投票する
2 に答える
1586 参照

asp.net-mvc - asp.netmvc-静的コンストラクター

asp.netmvcについて質問したい

  1. 静的コンストラクターはすべてのユーザー要求を初期化しますか?
  2. 静的データはすべてのユーザーで共有されますか?
0 投票する
6 に答える
44452 参照

wcf - WCF サービスはコンストラクターを持つことができますか?

ソリューションで WCF サービスを新規作成する場合、次のことを実行して、パラメーターを渡すコンストラクターを使用できますか? はいの場合、ランタイムは必要な IBusinessLogic オブジェクトをいつ、どこで、どのように埋めますか?

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

javascript - 関数の正しいプロトタイプ チェーン

次のプログラムの正しい出力 (ECMA 規格で正しいという意味) は何ですか?

Chrome と IE6 は次のように述べています。

そしてクラッシュ。

Mozilla の出力:

これらのどちらかが正しいですか?Mozilla の方が優れているようですが、最良の出力は次のとおりです。

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

c# - コンストラクターのオーバーロードとコードの再利用

Customerいくつかのプロパティ ( IDFirstName、 ) を持つオブジェクトがあるとしますLastName。私はデフォルトのコンストラクターを持っていますCustomer()Customer(DataRow dr)、データベースからこのオブジェクトをロードするのは簡単な方法であるため、 も持っています。

Customer(int ID)をロードしたいがCustomer、まだデータベースにアクセスしていない場合に備えて、別のコンストラクター をセットアップしたくなることがよくあります。私にとって最も簡単な方法は次のようです。

DataRow コンストラクターに既にあるコードを再利用することは理にかなっていますが、それを呼び出して、それが提供するものを返す方法がわかりません。グーグルを通じて、: this()構文でのコンストラクターのオーバーロードに関する情報を見つけましたが、これらの例はすべて、私がやろうとしていることと後方または互換性がないようです。

そのため、コンストラクターの理解にはギャップがありますが、整理できないようです。私は何が欠けていますか?

0 投票する
2 に答える
4439 参照

delphi - Generics: "CONSTRUCTOR 制約" とは?

基本オブジェクト クラスのサブクラスを保持するように設計されたカスタム TObjectList 子孫を作成しました。次のようになります。

新しいリストはそれぞれ、空白のオブジェクトが 1 つで始まるようにしたいと考えています。とても簡単ですよね?しかし、コンパイラはそれを好まない。それは言います:

「型パラメーター宣言でコンストラクター制約なしで新しいインスタンスを作成できません」これはジェネリック関連のものであるとしか思えません。何が起こっているのか、このコンストラクターを機能させる方法を知っている人はいますか?

0 投票する
2 に答える
4024 参照

c++ - C++ クラス - 派生クラスのコンストラクタ宣言

Socket には、パラメーターとして winsock SOCKET を取り、それをプライベート変数に格納するコンストラクターがあります。

Socket クラスからデータを解析するクラス「GameSocket」を作成しようとしています。

これらのクラスの隣に、必要に応じて新しいソケットを作成する「サーバー」クラスがあります。

ただし、これにより、最後の「else」でエラーが発生します。

派生クラスを扱うとき、コンストラクターで何かが欠けているに違いありません...

私は C++ と OOP に比較的慣れていません。

0 投票する
3 に答える
10449 参照

c++ - C++ でのカスタム オブジェクトのコンストラクタ/デストラクタと new/delete 演算子について

自分で作成したリンク リストがあるとします。メモリを解放する独自のデストラクタがあります。この Linked List は、new または delete をオーバーロードしません。

今、私は上記のリンクされたリストの配列を作成しようとしています(私が正しく理解していれば、ハッシュを開きます)。次に、このオープン ハッシュ クラスのコンストラクター内に必要なメモリを割り当てます。コンストラクター内で呼び出される new 演算子は、配列にメモリを正しく割り当てるのに十分ですよね? Linked List クラスの new をオーバーロードしていないため、よくわかりません。

また、リンク リストの配列が要素と呼ばれると仮定すると、デストラクタに「delete[] 要素」と記述できますか? 配列内の各要素のデストラクタを呼び出して、メモリを正しく解放しますか?

最後に、両方の仮定が正しい場合 (つまり、カスタム クラスで使用するために new と delete をオーバーロードする必要がない場合)、そのような演算子をオーバーロードするポイントは何ですか?

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

c# - 構成クラスまたはパラメーターを使用したオブジェクトのインスタンス化

同僚との設計上の意見の相違に直面しており、オブジェクト コンストラクタの設計について意見を求めています。簡単に言うと、どのオブジェクト構築方法を好みますか?またその理由は?

または

裏話は、今日のオブジェクトの構築に関して根本的に異なる見方に見えるものに遭遇したことです。現在、オブジェクトは、アプリケーションの現在の設定 (イベント ログの宛先、データベース文字列など) をすべて含む Application クラスを使用して構築されます。したがって、すべてのオブジェクトのコンストラクタは次のようになります。

多くのクラスは、この Application クラスへの参照を個別に保持しています。各クラス内では、アプリケーションの値が必要に応じて参照されます。例えば

最初は、両方の方法を使用できると思いました。問題は、コール スタックの下部でパラメーター化されたコンストラクターを呼び出し、スタックの上部で、新しいオブジェクトがアプリケーション オブジェクトへの参照がそこにあることを期待しているときに、多くの null 参照エラーに遭遇し、設計上の欠陥。

すべてのクラスを設定するためにアプリケーション オブジェクトを使用することについての私の感覚は、それが各オブジェクトのカプセル化を破り、アプリケーション クラスがすべての情報を保持する神のクラスになることを可能にするということです。この方法のマイナス面を考えると、問題が発生します。

public object(Application)必要な引数のみを受け入れるようにオブジェクトコンストラクターを変更して、 に変更したかったのpublic object(classmember1, classmember2 etc...)です。これにより、テストが容易になり、変更が分離され、渡す必要のあるパラメーターが難読化されなくなります。

現在、別のプログラマーは違いを認識しておらず、設計を変更する例や正当な理由を見つけるのに苦労しています。それは私の本能であり、私が知っているオブジェクト指向の原則に反するだけであると言うのは説得力のある議論ではありません. 私は私のデザイン思考のベースから外れていますか? どちらか一方を支持して追加するポイントはありますか?