このプログラムでは、オブジェクトを作成した後、デストラクタを使ってオブジェクトを破棄します...静的変数をカウンタとして使用しています...プログラムは正常にコンパイルされますが、出力が得られません。コードブロックで実行しようとすると、 "コードブロックが動作を停止しました"というメッセージが表示されます。gnu GCCコンパイラを使用してWindows 10で起動します。なぜ私は必要なプログラムの出力が得られませんか?
#include <iostream>
using namespace std;
class ashish
{
int *age;
public:
static int classm;
ashish()
{
*age=10;
classm++;
}
~ashish(){
cout<<"this going to destroy the object";
delete age;}
};
int ashish::classm=0;
int main()
{
ashish *blast;
blast=new ashish();
cout<<ashish::classm<<"chec"<<endl;
delete blast;
return 0;
}
で行ったようにあなたは、
age
のためのメモリを割り当てていません。 – LogicStuff必要がないときにダイナミックメモリを使用しているためです。 –
デバッガでコードをステップ実行するとどうなりますか?変更後の –