2016-03-24 11 views
0

このプログラムでは、オブジェクトを作成した後、デストラクタを使ってオブジェクトを破棄します...静的変数をカウンタとして使用しています...プログラムは正常にコンパイルされますが、出力が得られません。コードブロックで実行しようとすると、 "コードブロックが動作を停止しました"というメッセージが表示されます。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; 
} 
+2

で行ったようにあなたは、ageのためのメモリを割り当てていません。 – LogicStuff

+2

必要がないときにダイナミックメモリを使用しているためです。 –

+0

デバッガでコードをステップ実行するとどうなりますか?変更後の –

答えて

3

あなたのコードをインデントしていないので、あなたがblastblast = new ashish();

+0

* age = 10;このようなエラーが発生すると、次のようになります。コンストラクタ 'ashish :: ashish()':エラー:予期した ';' 'a'の前に –

+0

@AshishRanjan 'int 'の後ろと' a'の前に ';'を追加する必要があります。 – Rakete1111

関連する問題