問題タブ [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++ - コンストラクターの継承
なぜこのコードは:
次のエラーが発生します。
B は A のコンストラクターを継承すべきではありませんか?
(これはgccを使用しています)
c++ - メンバー関数がすべて static であるクラスの作成を防止する
クラス ClassA のメンバー変数とメンバー関数はすべて静的です。
ユーザーが (誤って) このクラスのオブジェクトを作成しようとすると、次のような警告が表示されます。したがって、ユーザーがこのクラスのオブジェクトを作成しようとするのを防ぎたいと思います。
プライベートなデフォルト (変数なし) コンストラクターを作成するだけで十分でしょうか? または、プライベート コピー コンストラクターとプライベート代入演算子も作成する必要がありますか (既定のコンストラクターを使用しないようにするため)。また、それらも作成する必要がある場合は、代わりにダミーの純粋仮想関数を作成する方がよいのではないでしょうか。これにより、ユーザーはオブジェクトを作成できなくなりますか?
ありがとうございました
c++ - const メンバーは、本体ではなくコンストラクター初期化子で初期化する必要があるのはなぜですか?
const
コンストラクター本体ではなく、コンストラクター初期化子リストでクラスメンバーを初期化するように宣言する必要があるのはなぜですか?
2つの違いは何ですか?
c# - コンストラクターの単体テストは重要ですか?
コンストラクターを単体テストする必要がありますか? 次のようなコンストラクタがあるとします。
このコンストラクターの単体テストを作成する必要がありますか? ラッパー変数のゲッターがないため、テストする必要はありません。
delphi - 派生クラスのコンストラクター宣言の後にオーバーロードまたはオーバーライドの単語を配置する必要がありますか?
クラス階層があります。これは次のとおりです。
ご覧のとおり、派生クラスのコンストラクターと基底クラスのコンストラクターは同じパラメーター リストを持ちます。派生コンストラクターから基本クラス コンストラクターを明示的に呼び出します。
Delphiで基本クラスのコンストラクタを明示的に呼び出す必要がありますか? 何をしようとしているのかを明確にするために、オーバーロードまたはオーバーライドを設定する必要があるのでしょうか? 私は C++ でそれを行う方法を知っています - 基本クラス コンストラクターを明示的に呼び出す必要があるのは、いくつかのパラメーターをそれに渡したい場合だけです - しかし、Delphi プログラミングの経験はあまりありません。
java - 匿名クラスのコンストラクターへのアクセス
具象クラス Class1 があり、そこから匿名クラスを作成しているとしましょう。
この匿名クラスのコンストラクターをオーバーロードする方法はありますか。以下のように
コンストラクターに名前を付けるために xxxxxxxx に何かありますか?
c# - new() 制約のあるジェネリック型で new in を呼び出すと、c# コンパイラが Activator.CreateInstance を出力するのはなぜですか?
次のようなコードがある場合:
C# コンパイラは、Activator.CreateInstance への呼び出しを発行することを要求しますが、これはネイティブ コンストラクターよりもかなり低速です。
次の回避策があります。
しかし、なぜこの回避策が必要なのか、私には理解できません。
javascript - 関数がコンストラクターとして呼び出されているかどうかを検出する方法は?
与えられた関数:
次の 2 つの方法で呼び出すことができます。
1 つ目は 30 を返し、2 つ目はオブジェクトを返します。
関数自体の中で関数が呼び出された方法をどのように検出できますか?
ソリューションが何であれ、次の呼び出しでも機能する必要があります。
現在、すべてのソリューションZ.lolol()
は、コンストラクターとして呼び出していると考えています。
javascript - Number をコンストラクタとして使用してはいけないのはなぜですか?
このステートメントを JSLint に入力しました。
そして、次のメッセージを受け取りました。
Number をコンストラクタとして使用しないでください。
何故ですか?このステートメントは、プリミティブ値ではなく数値オブジェクトを作成しているため、使用が問題になる理由がわかりませんnew
。
編集:すべての応答に感謝します。彼らは私にさらに考えさせたので、フォローアップの質問をここに投稿しました.
javascript - JavaScriptで、関数がコンストラクターとオブジェクトの両方と見なされるのはなぜですか?
私は最近これについて多くの研究を行っていますが、本当に良い確かな答えはまだ得られていません。JavaScriptエンジンが関数ステートメントに出くわしたときに新しいFunction()オブジェクトが作成されることをどこかで読みました。これにより、オブジェクトの子である可能性があると思います(したがって、1つになります)。それで私はダグラス・クロックフォードに電子メールを送りました、そして彼の答えは次のとおりでした:
関数ステートメントはコンパイラーを呼び出さないため、正確ではありません。
しかし、同様の結果が得られます。
また、私の知る限り、新しいオブジェクトとしてインスタンス化されていない限り、関数コンストラクターでメンバーを呼び出すことはできません。したがって、これは機能しません。
ただし、これは機能します。
これは単なるセマンティクスの問題ですか...プログラミングの世界全体で、オブジェクトが実際にオブジェクトになるのはいつですか、それはどのようにJavaScriptにマッピングされますか?