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