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

newを使用してC++オブジェクトをインスタンス化する場合と、newを使用せずにインスタンス化する場合の違いは何ですか?


C ++では、newキーワードを使用して、または使用せずにクラスオブジェクトをインスタンス化できます。 newキーワードを使用しない場合は、通常のオブジェクトと同じです。これはスタックセクションに保存されます。これは、スコープが終了すると破棄されます。ただし、アイテムにスペースを動的に割り当てたい場合は、そのクラスのポインターを作成し、new演算子を使用してインスタンス化できます。

C ++では、新しいメモリを動的に割り当てるために使用されます。

#include <iostream>
using namespace std;
class Point {
   int x, y, z;
   public:
      Point(int x, int y, int z) {
         this->x = x;
         this->y = y;
         this->z = z;
      }
      void display() {
         cout << "(" << x << ", " << y << ", " << z << ")" << endl;
      }
};
int main() {
   Point p1(10, 15, 20);
   p1.display();
   Point *ptr;
   ptr = new Point(50, 60, 70);
   ptr->display();
}

出力

(10, 15, 20)
(50, 60, 70)

  1. newを使用してC++で2D配列を宣言するにはどうすればよいですか

    動的2D配列は、基本的に配列へのポインターの配列です。これは、寸法が3x4の2D配列の図です。 アルゴリズム Begin    Declare dimension of the array.    Dynamic allocate 2D array a[][] using new.    Fill the array with the elements.    Print the array.    Clear the memory by deleting it. End サンプルコード

  2. C ++での定義と宣言の違いは何ですか?

    C ++では、宣言と定義が混同されることがよくあります。宣言とは、(Cで)型、サイズ、および関数宣言の場合は任意の変数のパラメーターの型とサイズ、またはプログラム内のユーザー定義の型または関数についてコンパイラーに通知することを意味します。宣言の場合、どの変数のためにもメモリにスペースが予約されていません。 一方、定義は、宣言が行うすべてのことに加えて、スペースがメモリに追加で予約されることを意味します。 「定義=宣言+スペース予約」と言うことができます。 以下は宣言の例です- extern int a; // Declaring a