2012-05-02 5 views

答えて

7

C++には確定的な割り当て解除があり、JavaおよびC#ではそれができません。

他のほとんどは実装定義です。

3

C++では、ヒープメモリの解放は、定期的に発生するC#/ Javaの自動ガベージコレクションとは異なり、手動のです。スマートポインタを使用して

、あなたはまた、C++でのガベージコレクションの効果をシミュレートすることができますが、ボンネットの下に誰かがdelete()/free()関数を呼び出すコードを記述する必要があります。

C++は動的に割り当てられていないスタックメモリ上のオブジェクト作成も提供しますが、メモリ管理も必要ありません。 C#/Javaよう

0

PLは、制御フローがスコープの外に出たときに、自動的にメモリの割り当てを解除するautomatic memory management技術で知られているgarbage collection技術をサポートしています。 PLgarbage collectionテクニックをサポートしている場合、プログラマはメモリを解放することに集中する必要はありません。

しかし、C/C++のように、PLは、プログラマがメモリを制御するmanual memory managementをサポートします。 C++は、新しい演算子と削除演算子を使用してメモリの割り当てと割り当てを解除する方法を提供します。

+2

'PL'が実際に"プログラミング言語 "を意味する場合は、それを綴りたい、あるいは少なくともコードとしてフォーマットしないでください。それは非常に混乱しています。 –

+0

それを混乱させて申し訳ありません.....私は、略語に焦点を当てて、むしろそれを使用するように考えるべきだと思っていました...... –

+1

これは確かにあなたの選択をして、個人的な好みの問題です議論の余地はありません;-)しかし、テキスト断片を強調表示するには、_italic_または** bold **を使うべきです。 –

関連する問題