問題タブ [default-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++ - デフォルトのコンストラクターなしでクラスへのポインターをシリアル化するときにsave_construct_dataをオーバーライドする際の問題
この例http://www.boost.org/doc/libs/1_42_0/libs/serialization/doc/serialization.html#constructorsに従おうとしていますが、エラーが発生し続けます。例に従って、プライベート変数にアクセスしようとするとエラーが発生します(十分に公平です)。
しかし、save_construct_dataを友達として追加すると、あいまいなエラーが発生します。
関数定義をfriend宣言に移動することはできますが、それは醜いです。
次に何を試してみるべきですか?
ありがとう、ジェイエン
java - Javaで、リフレクションを使用して引数なしのコンストラクターなしでクラスの「空白」インスタンスを作成することは可能ですか?
デフォルトのコンストラクターを持たないクラスがあります。そして、このクラスの「空白」インスタンスを取得する方法が必要です。「空白」は、インスタンス化後、すべてのクラスフィールドがnull、0などのデフォルト値を持つ必要があることを意味します。
オブジェクトの大きなツリーをシリアル化/非シリアライズできる必要があるため、質問しています。そして、私はこのオブジェクトのソースにアクセスできません。クラスとクラスにはデフォルトのコンストラクターもシリアル化可能な実装もありません。このような構造をシリアル化することはあまり良い考えではありませんが、代わりに、より簡単にシリアル化できるものに変換することもできます。
c# - C# でクラス外からプライベート コンストラクターにアクセスする
プライベート デフォルト コンストラクターとパラメーターを持つパブリック コンストラクターを使用してクラスを定義する場合、プライベート コンストラクターにアクセスするにはどうすればよいですか?
次のように、クラスの静的メソッドを介してプライベート コンストラクターにアクセスできます。
(私の理解によると)拡張メソッドはクラスの静的メソッドのように見えるように変換されるため、拡張メソッドを介してプライベートコンストラクターにアクセスできると思いましたが、できません:
では、プライベート コンストラクターにアクセスするにはどうすればよいでしょうか。
ありがとうございました
編集:
これを行う理由は、ビジネス クラスの 1 つのテストを作成したかったが、このクラスのコンシューマーがオブジェクトを誤ってインスタンス化できないようにしたかったからです。私はそれをテストしているので、どのような状況でテストが失敗するかを知っています (願っています!)。私はまだテスト中なので、私の考えは「間違った方法」だったかもしれませんし、そうでなかったかもしれません。
テスト戦略を変更して、このクラスのコンシューマと同じように処理を行うようにしました。つまり、パブリック メソッドを呼び出し、パブリック メソッドに問題がない場合は、プライベート メソッドに問題がないことを前提としています。私はまだプライベートな方法をテストしたいと思っていますが、私の上司は成果物で首をかしげています:-(
c++ - 継承されたクラスのデフォルトコンストラクタ
問題を次のサンプルコードに減らしました。
エラーが発生します:
'pokemon :: pokemon()'を呼び出すための一致する関数がありません</ p>
私が起こっていると思うのは、存在しないMewTwoコンストラクターを書き込もうとすると、ポケモンのデフォルトコンストラクターが呼び出されるということです。私はC++に比較的慣れていないので、ここで推測しています。何か案は?
制約:修正により、パブリックメンバーを変更したりクラスに追加したりすることはできません。
c++ - C++ で既定のコンストラクターを使用して変数を定義および宣言するにはどうすればよいですか?
グローバルスコープでの宣言と定義の私の理解から:
変数を宣言し、グローバル スコープで既定のコンストラクターを使用するように定義することは可能ですか? クラスの代わりに構造体を使用していたらどうなるでしょうか?
編集:
さて、MyClass instance;
デフォルトのコンストラクターを呼び出します。これがこの例とどのように一致しているかを誰でも説明できますか:
java - Javaのデフォルトコンストラクタ
デフォルトのコンストラクターとは正確には何ですか—次のどれがデフォルトのコンストラクターであり、他のコンストラクターと何が違うのか教えていただけますか?
java - JMockitを使用してDateクラスのデフォルトコンストラクターをモックする方法は?
のデフォルトコンストラクターをモックしたいjava.util.date
ので、作成された時刻を表すオブジェクトを作成しませんDate
が、常に同じDate
オブジェクトを作成します(私の例では2010年12月31日以下)。JMockit
とでこれを試してみましJUnit
たが、以下のテストを実行すると、出力は常にThu Jan 01 01:00:00 CET 1970
です。それで、私のモックの何が問題になっていDate()
ますか?
c++ - C++ のデフォルト コンストラクター
がパラメーターのないコンストラクターであると言う場合default constructor
、コンパイラーによって作成されたコンストラクターも であると言えdefault constructor
ますか?
ありがとう。
c++ - C++ オブジェクトにデフォルトのデストラクタがあるのはなぜですか?
たとえば、コンストラクターを宣言しない場合、コンパイラーは、引数も定義も持たない (空の本体) デフォルトのコンストラクターを提供するため、何のアクションも実行しません。
たとえば、オブジェクトを使い終わった場合、デフォルトのデストラクタはオブジェクトが使用するメモリを再割り当て (解放) しませんか? そうでない場合、なぜ私たちはそれを取得しているのでしょうか?
そして、おそらく同じ質問がデフォルトのコンストラクターにも当てはまります。何もしない場合、なぜデフォルトで作成されるのでしょうか?
c# - デフォルトのコンストラクターによる配列の初期化
上記のクラスの配列を作成し、配列内の各要素をデフォルトのコンストラクターを呼び出して初期化して、各要素が異なるようにしたいので、次のようabc
にしました。
しかし、これは私がすべきだと思うことをしません。このように、デフォルトのコンストラクターが呼び出されていないようです。配列を作成するときにデフォルトコンストラクタを呼び出す方法は?
また、上記のステートメントが何をするのか知りたいですか?