C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C ++のデストラクタとフリー関数の違いは何ですか?


ここでは、C ++のデストラクタ関数とfree()関数の違いを確認します。デストラクタは、オブジェクトが破棄される直前に、何らかのアクションを実行するために使用されます。このアクションではメモリが解放されない場合がありますが、画面に1つのメッセージを表示するなどの簡単なアクションを実行できます。

free()関数はCで使用されます。C++では、deleteキーワードを使用しても同じことができます。 free()またはdeleteを使用してオブジェクトを削除すると、デストラクタが呼び出されます。デストラクタ関数は引数をとらず、何も返しません。この関数は、freeまたはdeleteが使用されたとき、またはオブジェクトがスコープ外になったときに呼び出されます。

#include<iostream>
#include<cstdlib>
using namespace std;
class MyClass {
   public:
      ~MyClass() {
         cout << "Destructor of MyClass" << endl;
      }
};
int main() {
   MyClass *obj;
   obj = new MyClass();
   delete obj;
}

出力

Destructor of MyClass

free()関数がデストラクタを呼び出さない場合がありますが、メモリからコンテンツを削除します。そこで、ここではfree()の代わりにdeleteキーワードを使用しました。


  1. JavaScriptとC++の違いは何ですか?

    JavaScriptとC++の違いは次のとおりです。 JavaScriptは、軽量でインタプリタされたプログラミング言語です。これは、ネットワーク中心のアプリケーションを作成するために設計されています。これは、Javaを補完し、Javaと統合されています。 JavaScriptはHTMLと統合されているため、実装が非常に簡単です。オープンでクロスプラットフォームです。 C ++は、1979年にベル研究所でBjarneStroustrupによって開発された中級レベルのプログラミング言語です。 Windows、Mac OS、さまざまなバージョンのUNIXなど、さまざまなプラットフォームで動作し

  2. JavaScriptの関数とメソッドの違いは何ですか?

    JavaScriptでも関数とメソッドは同じですが、メソッドはオブジェクトのプロパティである関数です。 以下はJavaScriptの関数の例です- function functionname(param1, param2){    // code } 例 メソッドはオブジェクトに関連付けられた関数です。以下はJavaScriptのメソッドの例です- <html>    <head>       <script>          var e