프로그래밍/c++
객체지향 마무리
오늘의논리
2023. 3. 1. 11:35
728x90
1. struct vs class
- c++에서는 struct나 class나 종이 한장 차이임
- struct는 기본접근 지정자가 public 이고 class는 private이다
- 왜이렇게 했을까? C++은 c언어에서 파생되어 발전했기 때문에, 호환성을 지키기 위함
- struct는 그냥 구조체(데이터 묶음)을 표현하는 용도
- class는 객체 지향 프로그래밍의 특정 나타내는 용도
2. static 변수, static 함수(static = 정적, 고정된)
- 일반 변수와 다르게 특정 객체에 묶여있는게 아닌 클래스에 종속적인 변수가 됨.
- 초기화 하면 .data, 초기화 안하면 .bss 영역에 있음
- 일반 함수에서 사용하면 초기화가 맨처음 그 함수, 변수를 사용할때 한번만 됨.
class Marine
{
public:
int _hp;
void TakeDamage(int damage)
{
_hp -= damage;
}
static void SetAttack()
{
s_attack = 100;
}
static int s_attack;
};
int Marine::s_attack = 0;
int main()
{
Marin m1, m2;
Marine::s_attack = 5;
Marine::SetAttack();
return 0;
}
이렇게 하면 모든 마린(m1,m2)의 s_attack 이 5가되었다가 SetAttack 함수로 100이됨
728x90