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

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

c++ - (単純なコンストラクターの概念)なぜFoo();をしないのですか?何でもする?

これは、私が問題を抱えている単純なC++コンストラクターの概念です。

このコードスニペットを考えると:

出力は次のとおりです。

Foo f2();何もしていないようです。何です Foo f2();かそしてなぜそれは何もしないのですか?

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

c++ - コピー コンストラクターからの 2 種類のコンストラクター呼び出し

以下のサンプル コードを検討してください。

Type1: クラス sample に対して明示的に宣言されていないコピー コンストラクター

(上記のコードでは Type1 が示されています。次に、クラス sample のコピー コンストラクターがコンパイラによって暗黙的に生成されます)。ステートメントLine1が実行されると、最初に のコピー コンストラクターclass coreが呼び出され、次に のコピー コンストラクターclass sampleが呼び出されます。

Type2: クラス sample に対して明示的に定義されたコピー コンストラクター

ステートメントLine1が実行されると、最初に のデフォルト コンストラクターclass coreが呼び出され、次に のコピー コンストラクターclass sampleが呼び出されます。

質問:

Type1 と Type2 で述べたように、コピー コンストラクターの動作にこの違いがあるのはなぜですか?

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

java - Javaコンストラクタ/メソッドをクライアントで使用しないようにマークする好ましい方法は?

一部のデフォルトのコンストラクターとセッターを使用できない/推奨されていないものとしてマークしたいと思います。注釈 に多少似ている@Deprecated必要がありますが、同じ意味を持つべきではありません。一部のフレームワーク (Hibernate、Spring、Jackson) がそうさせているため、コンストラクターとセッターのみを追加しています。そのような構造が存在するかどうか知っていますか?

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

c++ - C ++は、括弧付きと括弧なしのデフォルトコンストラクターを呼び出します

重複の可能性:
C++ でのさまざまなタイプの初期化

次のような基本コンストラクターの呼び出しに違いはありますか

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

c++ - constオブジェクトが初期化されていないことに対するコンパイラの苦情

重複の可能性:
初期化されていないconst

constオブジェクトを初期化する必要があることを理解しています。

したがって、次のコードの場合、

constオブジェクトが初期化されていないため、コンパイラは文句を言いobjます。

しかし、デフォルトのコンストラクターを使用してコード(以下に表示)を変更すると、コンパイラーはエラーをスローしません。

新しく追加されたデフォルトのコンストラクターがコンパイラーを満足させることは何ですか?

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

python - Pythonでの複数の継承の動作

クラスのデフォルト__init__メソッドは作成時にc呼び出されobj、内部的には__init__クラスのみを呼び出しますb

私の理解によると、2つのクラスから継承する場合、派生クラスオブジェクトには両方のクラスの変数が含まれている必要があります(これらのクラスにプライベートでない場合)。

私の質問:派生オブジェクトに両方のクラスの変数が含まれていると期待するのは間違っていますか?もしそうなら、なぜですか?__init__クラスのaも呼ばれるべきではありませんか?C ++のような言語では何が起こっただろうか?

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

java - Javaでのコンストラクタ関連のエラー

私はJavaを初めて使用し、このコードを作成しました。単純なクラスBoxと、幅と長さの2つの属性、およびいくつかの関数があります。

このエラーが発生します。どうすれば修正できますか?誰かがこれを説明できますか?

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

c++ - C++ のテンプレート バージョンでデフォルトのコピー コンストラクターと代入演算子をオーバーライドできないのはなぜですか

コピーコンストラクターと代入演算子をテンプレートバージョンでオーバーロードすることについてこの質問をし、質問に関連する混乱を考慮して(コンパイラのバグのように見えるため)、テンプレートコピーコンストラクターとテンプレート代入演算子のみを使用して試してみようと思いました何が起こるか見てください。しかし、それらはコンパイラによって完全に無視されます。

テンプレート バージョンでデフォルトをオーバーライドできないのはなぜですか (答えは、デフォルトの方が適切であると思われますが、テンプレート バージョンもデフォルトとして機能するようにしたいと考えています)。そして、デフォルトの代わりにテンプレートのバージョンが呼び出されるようにするためにできることはありますか?

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

c++ - 角かっこが含まれている場合、デフォルトのコンストラクターはテンプレートクラス内でコンパイルされません(g ++ 4.6.1)

これに関するGoogleの情報は見つかりませんでした。次の例では、次のようになります。

コードは次のエラーでコンパイルに失敗します:

静的メンバー関数'staticvoid Template :: Test()':19:22:エラー:デフォルトのテンプレート引数は、-std = c++0xまたは-std=gnu++0xがないと関数テンプレートで使用できません。

問題は、その行に角かっこが表示されるのが気に入らないことです。その理由がわかりません。角かっこを削除すると、コードは正常にコンパイルされます。また、テンプレート宣言(13行目)を削除すると、正常にコンパイルされます。これはバグですか、それともまさにこの状況についてどこかにルールがありますか?

私はg++4.6.1(gccバージョン4.6.1(Ubuntu / Linaro 4.6.1-9ubuntu3))を使用しています

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

c++ - C ++:継承のための必須のデフォルトのスーパークラスコンストラクター?

スーパークラスから継承できるようにするには、スーパークラスにデフォルトのコンストラクターを含める必要がありますか?すべての派生クラスコンストラクターがスーパークラスコンストラクターの1つを明示的に呼び出して、適切なパラメーターを提供していると仮定します-そのようなコードは機能しますか?