問題タブ [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.
android - 連結Androidキャンバス
複数のビットマップ(グリッドパターンのようなもの)でキャンバスを作成する例を探しています。
他のすべてのビットマップを上に保持する単一のビットマップを作成する必要がありますか、それとも各ビットマップをキャンバスの「中に」配置するだけですか(文字列の連結と同様)?
注:この構築されたキャンバス(おそらく他のビットマップ)の上に追加の画像も配置することに注意してください。これにより追加の問題が発生しますか、それともそれらを上に追加できますか?
c++ - コンストラクターによるメンバー変数のインプレース構築
次のクラスを受講します。
Message を作成するたびに、TPayload (パラメーター ペイロード) を作成し、これを m_payload にコピーしてから、ペイロードを破棄する必要があります。これは 1 秒間に何十万回も実行できると考えてください。これは無駄な作業だと思います。
私の質問は、一時的なペイロードを回避するために m_payload のインプレース構築を強制することはできますか?
私が検討している解決策の 1 つは、以下のように構造を何度もオーバーロードすることですが、正直なところ、複数の引数のすべてのコピーに多くの節約があるとは思えません。
c++ - std::string の効率を理解する
C++ 文字列についてもう少し学習しようとしています。
検討
と
アプリケーションの .data セクションに「hello」を保存し、std::string によって管理されるポインターがアクセスできるヒープ上の別の領域にバイトがコピーされると仮定して正しいでしょうか?
本当に長い文字列を効率的に保存するにはどうすればよいですか? ソケットストリームからデータを読み込むアプリケーションについて考えています。何度も連結するのが怖いです。リンクされたリストを使用して、このリストをトラバースすることを想像できます。
ストリングスは、あまりにも長い間私を怖がらせてきました!
リンク、ヒント、説明、詳細は非常に役立ちます。
language-agnostic - 抽象構文木の構築とトラバーサル
抽象構文木の構造がよくわかりません。ASTが表すプログラムのソースで「下(前)」に行くには、一番上のノードを右に行くか、下に行くか? たとえば、サンプルプログラムは
次のような AST が生成されます。
またはこれ:
最初のものでは、「右」にmain node
進むとプログラムが進みますが、2番目のものでは、next
各ノードのポインターをたどるだけで同じことが行われます。
最初のノードのポインターの配列が非常に長くなる可能性がある特別なノードタイプのようなものは必要ないため、2番目の方がより正しいようです。for
ただし、ループやif
分岐など、より複雑なものに入ると、2 番目の方が 1 番目よりも複雑になることがわかります。
c++ - コンストラクター用の巨大なswitchステートメント
基本クラスへの一連のポインターを保持するコンテナーと、入力を受け取り、基本クラスのサブクラスであるクラスを返す関数があります。どのサブクラスを返すかは、入力によって異なります。
現在、次のような巨大なswitchステートメントがあります。
これを設計するためのより良い方法があるかどうか疑問に思いました。私は多くの「デザインパターン」を知らないので(それが彼らの名前だと思います)、これをデザインするための(明らかな)より良い方法があるかどうかはわかりません。
c++ - コンストラクターをプライベートとして宣言する以外に、特定のC ++クラスの構築を禁止する他の方法はありますか?
const参照メンバー変数を持つクラスがあり 、特定のタイプの構築を禁止したいとします。したがって、それに応じたコンストラクターをprivateと宣言します。もちろん、コンストラクターは、クラスのすべてのconst参照 メンバー変数を初期化する必要があります。ただし、そうすると、奇妙なコードになります。
コンストラクターをプライベートとして宣言する以外に、特定の構築タイプを禁止する別の方法はありますか?コンパイラーにコンストラクターを作成させたくありません。
c++ - 宣言している同じ変数を参照する
C++ コードで作業しているときに、次の型の間違いを数回見ました。
これはかなり簡単に間違いを犯す可能性がありますが、コンパイルして実行します (クラッシュする場合もあれば、クラッシュしない場合もあります)。あなたが実際にやりたいと思うような状況は見当たりません。
一部のテストでは、デフォルトのコンストラクターではなくコピー コンストラクターが呼び出され、オブジェクトがコピー コンストラクター内から自身を与えられていることが明らかになりました。
これがコンパイラ エラーや警告ではない理由を説明できる人はいますか?
c++ - 演算子のオーバーロードでの明示的な構築?
演算子で明示的な構築を使用することは可能ですか?
この例のように (もちろん動作しません):
javascript - 連結によるJavascript文字列の構築?
Javascript の探索 (そして Java の世界から来ました)。スクリプトに次のコード行があります。
しかし、それは機能しません。BOTTOM_MID
初期化されていません。それでも、次のように動作します。
Javascript は連結による文字列の構築を理解していませんか? はいの場合、どのように進めればよいですか?
c++ - 新しい配置で真の基本クラスの構築を遅らせる
私は、次のアプローチが a) 合法であり、b) 道徳的であるかどうか (およびその理由) を尋ねています。C++03 に重点を置いて質問していますが、C++11 に関するメモも歓迎します。アイデアは、それ自体がデフォルトで構築可能である可能性のある派生クラスが愚かなB::B(int foo) : A(foo) {}
コンストラクターを実装するのを防ぐことです。
私の腸は、ここで何かが怪しいと言っています。いずれかのDerived
クラスがそのコンストラクターでメンバーにアクセスする場合Base
、私は別の場所に行きたいと思いますが、それ以外の場合、アプローチが悪い正当な理由を見つけるのに苦労します.
とにかく、これが許容できるアプローチだと思う場合、参照メンバー (のようなものint& Base::j
) をどのように処理しますか?
注:これは、 C++03 でコンストラクターの継承を偽造するにはどうすればよいですか?へのフォローアップの質問です。.
編集:質問を投稿するときに気が散っていたに違いありません。もちろん、delete b
私が意味するのではなくb->~Base()
。低血糖のせい!