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

静的オブジェクトはいつC++で破棄されますか?


静的オブジェクトはキーワードstaticで宣言されています。それらは一度だけ初期化され、静的記憶域に保管されます。静的オブジェクトは、プログラムが終了したとき、つまりプログラムが終了するまで存続するときにのみ破棄されます。

C++で静的オブジェクトを示すプログラムは次のとおりです。

#include <iostream>
using namespace std;
class Base {
   public :
   int func() {
      int a = 20;
      cout << "The value of a : " << a;
   }
};
int main() {
   static Base b;
   b.func();
   return 0;
}

出力

上記のプログラムの出力は次のとおりです。

The value of a : 20

上記のプログラムを理解しましょう。

Baseクラスの関数func()は、int変数aを宣言してから、aの値を表示します。これを示すコードスニペットは次のとおりです。

class Base {
   public :
   int func() {
      int a = 20;
      cout << "The value of a : " << a;
   }
};

関数main()では、クラスBaseの静的オブジェクトbが作成されます。次に、関数func()が呼び出されます。オブジェクトbは静的であるため、プログラムが終了したときにのみ破棄されます。これを示すコードスニペットは次のとおりです。

int main() {
   static Base b;
   b.func();
   return 0;
}

  1. C++で3つのポイントが同一線上にあるかどうかをチェックするプログラム

    3つの異なる値のポイントが与えられ、タスクはポイントが同一線上にあるかどうかを確認することです。 ポイントが同じ線上にある場合は同一線上にあると言われ、異なる線上にある場合は同一線上にありません。以下に、同一線上および非同一線上の点の図を示します。 入力 x1 = 1, x2 = 2, x3 = 3, y1 = 1, y2 = 4, y3 = 5 出力 no points are not collinear 入力 x1 = 1, y1 = 1, x2 = 1, y2 = 4, x3 = 1, y3 = 5 出力 points are collinear 以下のプログラム

  2. C ++の符号付きおよび符号なしキーワードとは何ですか?

    C ++のすべての数値タイプには、符号を付けることも付けないこともできます。たとえば、正の整数のみを表すintを宣言できます。特に指定がない限り、すべての整数データ型は符号付きデータ型です。つまり、正または負の値をとることができます。 unsignedキーワードは、符号なしの変数を宣言するために使用できます。 例 #include<iostream> using namespace std; int main() {    unsigned int i = -1;    int x = i;    cout <&l