C言語のmelloc()とfree()のC++版がnewとdeleteになる。newはメモリ確保時にコンストラクタ、deleteはデストラクタが呼び出せるのでC++では基本的にこちらを使う。
new演算子でインスタンス化
#include <iostream>
//クラス
class Aclass{
public:
Aclass();
~Aclass();
void method();
};
//コンストラクタ
Aclass::Aclass(){
std::cout << "constructor\n";
}
//デストラクタ
Aclass::~Aclass(){
std::cout << "destructor\n";
}
//メンバ関数
void Aclass::method(){
std::cout << "Aclass::method()\n";
}
//メイン関数
int main(void){
//ポインタ宣言
Aclass *oAclass;
//newでメモリ確保、そのアドレスをポインタへ
oAclass = new Aclass();
//上記をこのように1行で書いてもOK
//Aclass *oAclass = new Aclass();
//ポインタなのでこのように扱う
oAclass->method();
//この書き方でもOK
//(*oAclass).method();
//メモリ解放
delete oAclass;
return 0;
}
|
ひとつのクラスをnewでインスタンス化し、deleteでメモリ解放している。
constructor
Aclass::method()
destructor
|
C++言語 Meadow & MinGW GCC 目次