[C++]课题笔记20190716

本文详细介绍了C++中`static`关键字的使用,包括在函数内的static变量和在类内的static成员。函数内的static变量会在程序运行期间持续存在,而类内的static成员变量可以在没有实例化对象的情况下被访问。同时,还讨论了Getter/Setter的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

static の使い方

書く場所

  • グローバル変数の位置

{}に囲まれていないところ

static int anpan;//そのファイル内でのみ有効
extern int anpan;//extern別のファイルで参照する場合extern同じ変数宣言(そとにあるよ)
[extern](https://www.cnblogs.com/yc_sunniwell/archive/2010/07/14/1777431.html)
enemy.h
#ifdef ENEMY
int anpan;
#else
extern int anpan
#endif

staticはファイルごとに別の関数扱い

関数内のstatic

static領域で変数確報、関数終わったときずっとstatic領域内残り続ける

クラス内で書いた場合

class Mosnter
{
public: 
	int HP;//インスタンスごとにとられる
	static int kazu;//クラスについて一個だけスタティック領域にとられる
}

kadai

#include<iostream>
using namespace std;

class Monster 
{
public:
	int HP;
	static int kazu;
	Monster()
	{
		kazu++;
	}
	~Monster()
	{
		kazu--;
	}

};
int Monster::kazu = 0;
int main()
{
	Monster anpanman;


	cout << anpanman.kazu << endl;
	Monster nakagomi;
	
	cout << nakagomi.kazu << endl;

	cin.get();
	return 0;
}

クラス内の関数につける
インスタンスなくても呼べる
Soundよく使われてる
static関数内で扱えるのはstaticつけたのみ(static関数やstatic変数)

Getter/Setterの話

//Setter
class Monster
{
	int hp;
public:
	void SetHP(int n)
	{
		hp=n;
	}
}

//Getter
int GetHP()
{
	return hp;
}

int main()
{
	Monster Gomi;
	Gomi.SetHP(10);
	
}

void Hp(int n)
{
	hp=n;
}
int Hp()
{
	return hp;
}

作为程序员会有很吵的前辈和全都public就行的前辈(
関門

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值