C++のnewの使い方
new演算子は、オブジェクトや配列を作成するために動的にメモリを確保し、確保したメモリ領域へのポインタを返す、C++の演算子です。
new演算子の基本的な構文は次のとおりです。
new 类型名;
もしくは
new 类型名[数组大小];
型名は生成するオブジェクトの型で、組み込み型、カスタム型、またはポインタ型になります。new演算子でオブジェクトが生成されると、そのオブジェクトのコンストラクタが自動的に呼び出され初期化されます。
以下に例を示します。
- int型オブジェクトを生成します。
int* ptr = new int;
- 自前のクラスのオブジェクトのインスタンスを生成する
class MyClass {
public:
MyClass() {
// 构造函数的实现
}
// 其他成员函数和变量
};
MyClass* obj = new MyClass;
- 配列を作成する:
int* arr = new int[10];
new演算子で生成されたオブジェクトや配列は、メモリリークを防ぐために手動でメモリを解放する必要があります。メモリ解放はdelete演算子を用いて、new時の対応する形で解放します。例:
delete ptr;
delete[] arr;
newで生成したオブジェクトは、メモリの解放を自分で行わないとメモリリークが発生するので注意が必要。そのため、newを用いる際には、オブジェクトが必要なくなったら、確実にメモリを解放すること。