問題タブ [object-construction]
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++ - 開始オブジェクトの構築プロセスと UB を理解する
次の例は、12.7/3 N3797 に記載されています。
例のルール:
クラス X のオブジェクトを参照するポインター (glvalue) を、X の直接的または間接的な基底クラス B へのポインター (参照) に明示的または暗黙的に変換するには、X の構築と、その直接的または間接的な基底すべての構築B から直接的または間接的に派生するクラスが開始され、これらのクラスの破棄が完了していない必要があります。そうでない場合、変換によって未定義の動作が発生します。
しかし、例を少し変更してみましょう:
コンストラクターの呼び出し前に構築された//1
クラスの基本サブオブジェクトがあるため、UB はないと思います。つまり、D(A*) が呼び出された時点で、 の構築が開始されます。HD
D(A*)
D
私の推論は正しいですか?
javascript - javascript でオブジェクトを作成し、プロパティを操作する
私は 2 つの異なる方法でオブジェクトを作成し、それらに到達して操作しようとします。オブジェクトコンストラクターで作成したオブジェクトは機能しますが、リテラル表記でやろうとしているのと同じことが機能しません。理解できない。
これは、私よりも自分自身をよりよく説明するコードです:
groovy - @ToString で生成された文字列を Groovy でオブジェクトに変換する方法
たとえば、次のクラスのインスタンスは文字列を生成しますA(x:7, values:[hello, world])
この文字列をクラスのインスタンスに戻すにはどうすればよいですか?
java - スーパークラスのインスタンスを使用してサブクラスを構築するにはどうすればよいですか?
次のコードがあるとしましょう
ただし、今は SuperClass オブジェクトを SubClass コンストラクターに渡すことができるようにしたいと考えています。どうすればいいですか?
基本的に、私はこのようなことをしたい...
しかし、SuperClass がより複雑な場合、super() 呼び出しに各値を追加したくありません。代わりに、既に存在するオブジェクトを単純に渡し、それをスーパー クラスとして使用したいと考えています。
私はこれをしたい...
しかし、それが許可されているかどうかはわかりませんか?
SuperClass 定義にコンストラクターを追加すると、上記のことができるようです。しかし、それはどのように見えるでしょうか?
c++ - 転送されたインプレース構築とリストの初期化
転送されたインプレース構築とは、std::allocator::constructとさまざまな emplace メソッド ( std::vector::emplace_back など) を意味します。C++ で転送されたインプレース構築では、リスト初期化構文を利用していない (できない?) ことがわかりました。その結果、集約をインプレースで構築することは決してできないようです。転送されたインプレース構築がリストの初期化をサポートしていないため、集計型がサポートされていないかどうかを確認したいだけです。これは言語の制限によるものですか?誰かがこの問題に関する標準への参照を提供できますか? 以下に図を示します。
直接のようにインプレース構築を行うことができますが、
次のような転送されたインプレース構築はできません
javascript - オブジェクト リテラルでのプロトタイプの拡張
次のコードがある場合、undefined のプロパティ 'second_prop' を設定できないというエラーが返されるのはなぜですか。プロトタイプ プロパティを拡張し、オブジェクト プロトタイプにさらに変数とメソッドを追加できると考えました。2 つのコンソール ステートメントが 'Object' と true を返すため、なぜ未定義のエラーが返されるのでしょうか。私の考えでは、「obj」がオブジェクト型のオブジェクトである場合、temp.prototype.newproperty を実行できるはずです。したがって、オブジェクトには「新しいプロパティ」があります。しかし、私は明らかに間違っているので、ここに欠けているものがあります。さらに、obj が既にオブジェクト リテラルであるのに、なぜ Object.create() を実行する必要があるのでしょうか。それはすでにオブジェクトではありませんか?私はいくつかの例を見て、これを理解しようとしています
出力
では、temp.prototype や obj.prototype を実行できないのはなぜですか?
java - JVM は抽象クラスのオブジェクトを内部的にインスタンス化しますか?
抽象クラスとその具体的なサブクラスがあり、サブクラスのオブジェクトを作成すると、自動的にスーパー コンストラクターが呼び出されます。JVM は抽象クラスのオブジェクトを内部的に作成していますか?
それでは、JVMにオブジェクトなしでコンストラクターがどのように存在するのですか?? (抽象クラスの場合)
また、オブジェクトが作成された後にコンストラクターが実行され、抽象クラスのオブジェクトを作成せずに、デフォルトのコンストラクターがどのように実行されるのですか?? (これはJava Docに記載されています)