C++ 静的メンバ

main.cpp

#include "rat.h"
#include <iostream>

using namespace std;

int main() {
	CRat *r1, *r2, *r3;
	r1 = new CRat();    //  一匹目のネズミ生成
	r1->squeak();
	CRat::showNum();    //  ネズミの数を表示
	r2 = new CRat();    //  二匹目のネズミ生成
	r3 = new CRat();    //  三匹目のネズミ生成
	r2->squeak();
	r3->squeak();
	delete r1;          //  一匹目のネズミ消去
	delete r2;          //  二匹目のネズミ消去
	CRat::showNum();    //  ネズミの数を表示
	delete r3;          //  三匹目のネズミ消去
	CRat::showNum();    //  ネズミの数を表示
	return 0;
}

rat.cpp

#include "rat.h"
#include <iostream>

using namespace std;

//  ネズミの数の初期値を0に設定
int CRat::m_count = 0;

//  コンストラクタ
CRat::CRat() : m_id(0) {
	m_id = m_count;    //  ネズミの数を、IDとする。
	m_count++;        //  ネズミの数を一つ増やす
}
//  デストラクタ
CRat::~CRat() {
	cout << "ネズミ:" << m_id << "消去" << endl;
	m_count--;        //  ネズミの数を一つ減らす
}
//  ネズミの数の出力
void CRat::showNum()
{
	cout << "現在のネズミの数は、" << m_count << " 匹です。" << endl;
}
//  ネズミが鳴く
void CRat::squeak()
{
	cout << m_id << ":" << "チューチュー" << endl;
}

rat.h

#ifndef _RAT_H_
#define _RAT_H_

class CRat {
public:
	//  コンストラクタ
	CRat();
	//  デストラクタ
	~CRat();
	//  ネズミの数の出力
	static void showNum();
	//  ネズミが鳴く
	void squeak();
private:
	//  ネズミの番号
	int m_id;
	//  ネズミの数
	static int m_count;
};

#endif /* _RAT_H_ */

投稿者: chosuke

趣味はゲームやアニメや漫画などです

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です