問題タブ [delete-operator]

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 に答える
1759 参照

c++ - C++ での削除演算子のオーバーロード

私のコードでは、ファイル名と行番号を取得するためにnewand演算子をオーバーロードしました。delete私のコードでは、 と を使用mapしていstackます。マップから特定の値を消去すると、オーバーロードされdeleteた関数が呼び出されますが、他の関数ではなく、明示的なdeleteステートメントのみが関数にアクセスできるようにします。どうやってやるの?

0 投票する
7 に答える
2728 参照

c++ - 静的ローカル変数として保存されている配列を削除する必要がありますか?また、その方法は?

いくつかの配列と削除が必要なリソースがあります。これらの変数の値はプログラムの存続期間を通じて保持され、単一の関数でのみ使用されるため、静的変数に自然に適合します。

ただし、静的を使用した場合、関数の外部からこれらの変数にアクセスできないため、これらのリソースを削除するのに問題が発生します。これらのグローバルを作成することはできますが、可能であればそれを避けたいと思います。

したがって、問題は次のとおりです。

  1. arrs []はスタックまたはヒープに割り当てられていますか?それで、私はそれを削除する必要がありますか?
  2. GLUquadricの場合、明らかにコンパイラーはそれを適切に削除する方法を知りません。今のところ、美しく機能するRAIIラッパークラスを使用しましたが、さらに簡単なアプローチがあるかどうかを探しています。

valgrindはGLUquadricをリリースしないと不平を言いました、そして私がそれらをリリースするときにプログラムがとにかく終了するはずであり、これらのリソースがプログラムの終了時におそらく(?)リリースされるとしても、valgrindをサイレンシングするのではなくクリーンアップするだけだと思います。

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

c++ - C++ に delete[] があるのはなぜですか?

なぜあるのdelete[]ですか?私の理解では、配列の動作が異なります。しかし、なぜそれは本当に存在するのですか?C には free しかなく、free_array はありません。delete varまた、構文では、との唯一の違いdelete []varは、[]パラメーターがないことです (配列の長さはわかりません)。

では、なぜdelete[]実際に存在するのでしょうか。deleteオーバーロードできると誰かが言うことは知っていますがdelete[](少なくとも私はそれが可能だと思います)、オーバーロードしていないとしましょう。なぜそれが存在するのですか?

0 投票する
6 に答える
3225 参照

c++ - ポインター ベクトルを解放するにはどうすればよいですか?

ポインタ ベクトルのメモリを解放するにはどうすればよいですか? コードは次のとおりです。

.erase()メモリが解放されず、デストラクタも呼び出されないことがわかりました。すべてのリスト エントリで繰り返し使用しようとしdeleteましたが、1 回の繰り返しでクラッシュします。エラーを回避するために、リスト エントリが既に NULL であるかどうかを既にチェックしています。何か不足していますか?また、私は STL のみを使用する必要があり、Boost は必要ありません。

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

c++ - 「new」を使用せずにC++でオブジェクトを作成する

たとえば、行列を表すプログラムを作成したいのですが、行列はベクトルで表され、ベクトル内の各オブジェクトはセルの例を表します。ベクトルこれで、行列を作成するときに、コンストラクターが挿入するセルのリストを受け取ります。マトリックス。リストのサイズはコンパイル時に不明です

ヒープ上のメモリを使用せずにこのマトリックスを作成することに興味があります。言い換えれば、「新規」または「削除」という単語を使用してオブジェクトを作成しない場合、ベクトルに挿入されるオブジェクトの数がわからない場合、それを行う方法はありますか?

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

c++ - ベクター内のポインターを消去する前または後に削除する必要がありますか?

の前または後に削除する必要がありeraseます。私の理解では、どちらも問題ありません。それが正しいか?

さらに、消去中に要素を削除したくない場合はありますか? あるに違いないと私は信じています。さもなければ、erase喜んで責任を取ります。

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

c++ - 「オーバーライド」と「オーバーロード」の新規作成/削除

私はいつも思っていた...

  • オーバーライドとは、基本クラスで関数 (同じシグネチャ) を再実装することを意味しますが、
  • オーバーロードとは、同じ名前で署名が異なる関数を実装することを意味します

...そして、違いを気にしない人もいるため、混乱しました。

新規/削除に関して: それらは過負荷または上書きされていますか?

アイデア:

  • Class = overload に new/delete 演算子を実装する
  • グローバルな new/delete = override の再実装

修正/提案/異議はありますか? 質問にタグを付けてください。

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

c++ - テンプレート リストからのオブジェクトの削除

私は言うテンプレートリストを持っています、

サブクラスの mList オブジェクトに追加されます。

リストからオブジェクトを削除する際に、オブジェクトを対応するサブクラスに変換し、delete メソッドを呼び出す必要がありますか?

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

c++ - テンプレートを削除するには?

テンプレートの削除に問題があります。
私のテンプレートとデストラクタ:

私のヒープとデストラクタ:

これはテンプレートを保持するオブジェクトです。これにも問題があります。

ここで何が問題なのですか?

0 投票する
6 に答える
380 参照

c++ - スタックからのオブジェクトの削除

スタックからオブジェクトを手動で削除するのは悪い/違法な C++ ですか、それとも許容できる状況がありますか?

編集

オブジェクトがヒープ上にあるかスタック上にあるかを確認する方法はありますか?