問題タブ [member-initialization]
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++ - 使用しているエラー C2064と
ここで何をすべきか本当にわかりません。私が調べたすべての回答には、理解できない構文があります。
エラー:
ハッシュ テーブル コンストラクターで関数ポインターを使用しています。とヘッダーを使用して、私が抱えていた問題を解決することが提案されました。エラーは解決しましたが、上記のエラーが発生しました。
私のハッシュテーブル宣言とctorは次のとおりです:
Game.h (テーブルを含む):
Game.cpp (xorHash 関数を渡そうとしています)
前もって感謝します。
.net - 文字列配列は宣言を期待していますか?
この単純なコードで次の問題が発生しています。
ビット「publicationArray(0) etc」は、「publicationArray」の宣言が必要であることを示しています。これはあってはならないことのようです。
multidimensional-array - D - 多次元静的配列である構造体メンバーのデフォルト値を設定する
Dプログラミング言語を使用しています。struct
最初にゼロ以外の値で満たされた s の多次元静的配列を含む が必要int
です (私の場合、ゼロは有効なエントリであり、最初にすべてのエントリを無効としてマークしたいと考えています)。であるためstruct
、デフォルトのコンストラクターを持つことはできません。代わりに、のメンバーにデフォルト値を指定できますstruct
。
問題は、この多次元配列の値を短く読みやすい方法で記述するにはどうすればよいかということです。それを行うための便利な関数、特殊なケースの構文、またはイディオムはありますか?
これが私が思いついたものです。
-1
これにより、期待どおりに sの配列が出力されます。
それでも、この表現NA.repeat(SIZE).array().repeat(SIZE).array()
は長く見えます。私の意図を表現するためのより良い (より慣用的で、より読みやすい) 方法があるのではないかと思います。
さらに数回試行して更新します。
int [SIZE] [SIZE] a = NA;
現在のベータ版 dmd-2.066-b2 でもコンパイルできません。int [SIZE] [SIZE] a = NA.repeat (SIZE).array ();
コンパイルして実行します。それでも、一貫性は損なわれます。int [SIZE] [SIZE] a = [NA, NA, NA];
本質的には上記の式を簡略化したものに見えます。NA
コンパイルされますが、最初の 3 要素の部分配列のみがsで埋められます。他の 2 つのサブ配列には、ガベージのようなものが含まれています。それはある種の部分的な初期化機能ですか?私には、無効なコードを受け入れるコンパイラのようなバグのように見えます。int [SIZE] [SIZE] a = [NA];
最初の部分配列をに設定し[-1, 0, 0]
、残りを前の試行と同じガベージに設定します。fill
にもありますがstd.algorithm
、範囲 (範囲の範囲ではなく) に対して機能し、初期化子ですぐに使用できるようには見えません。少なくとも短くはなりません。
c++ - C++11 を使用したメンバー初期化子リストの初期化子リスト構文
私は「C++ のツアー」を経験してきましたが、Bjarne はコンストラクターのメンバー初期化で c++11 初期化子リスト機能を次のように使用します (中括弧を使用):
ただし、これは c++11 より前ではコンパイルできません。古いメンバー初期化子リストとの違いは何ですか (丸括弧を使用):
では、どのような違いがあり、どちらを優先する必要があるのでしょうか?
c++ - C ++のメンバー初期化リストでのみメンバー関数を呼び出すことはできますか?
クラスのすべてのメンバーを個別に初期化するメンバー関数をクラスに提供したい。
例えば
使用できるかどうかはわかっています"class my : i(init())"
が、上記のように初期化する特別な目的があります。
ただし、上記の例では、次のエラーが発生します。
クラス「my」には「initMy」という名前のフィールドがありません。
これを解決するには?
javascript - 後で初期化するためにnullを使用してリテラルメンバーを宣言することは、JSで実行可能な実践ですか?
次のようにリテラルを宣言します。
異議?
x: undefined
まったく宣言しないのと同じなので、私はそれをしたいと思いx
ます。後で初期化するためにリテラル メンバーを宣言するときの良い方法は何ですか?
c++ - プログラマーがメンバーの初期化のためにセマンティクスのコピーと移動のどちらかを選択できるようにする非反復的な方法はありますか?
移動セマンティクスまたはコピー セマンティクスを使用して、クラスの各フィールドを初期化できるようにしたいと考えています。コンストラクターはすべて、次のように、基本的に同じコードを使用して構築します。
等
このように、可能な組み合わせごとにコンストラクターを宣言するよりも、これを行うためのより良い方法はありますか?
ここでは、読みやすくするために簡略化した形式を示します。
Object
はメンバーを持つクラスであり、メンバーMember
の型名です。このMember
型には、コピー コンストラクターとムーブ コンストラクターの両方が定義されています。
基本的に、私の質問は、コードの重複を少なくして次のことを行う方法でした。