[C++] OOP(객체지향)의 특성 - 멤버변수 초기화Language/C++2022. 6. 6. 16:18
Table of Contents
Introduce
멤버 변수를 초기화하는 방법에 대해 알아봅니다. 변수 초기화를 하지 않으면 다음과 같이 변수에 가비지값이 들어갈 수 있습니다.
#include <iostream>
using namespace std;
class Player
{
public:
int _hp;
};
int main()
{
Player p;
cout << p._hp << endl;
return 0;
}
===== 실행 결과 =====
4201019
멤버 변수의 초기화 방법
- 생성자에서 초기화
- 초기화 리스트
- C++ 11 문법
생성자에서 초기화
객체를 호출할때 생성자에 의해서 생성이된다는 것을 알 수 있었습니다. 이과정에서 멤버변수의 초기화까지 같이합니다.
#include <iostream>
using namespace std;
class Player
{
public:
Player()
{
_hp = 100;
}
public:
int _hp;
};
int main()
{
Player p;
cout << p._hp << endl;
return 0;
}
===== 실행 결과 =====
100
초기화 리스트
#include <iostream>
using namespace std;
class Player
{
public:
Player() : _hp(100) {} // 초기화 리스트
public:
int _hp;
};
int main()
{
Player p;
cout << p._hp << endl;
return 0;
}
===== 실행 결과 =====
100
C++ 11
생성자에서 초기화하지 않고, 멤버변수를 선언하는 동시에 초기화합니다.
#include <iostream>
using namespace std;
class Player
{
public:
int _hp = 100;
};
int main()
{
Player p;
cout << p._hp << endl;
return 0;
}
===== 실행 결과 =====
100
'Language > C++' 카테고리의 다른 글
[C++] OOP(객체지향)의 특성 - Class와 Struct의 차이점 (0) | 2022.06.06 |
---|---|
[C++] OOP(객체지향)의 특성 - 연산자 오버로딩 (0) | 2022.06.06 |
[C++] OOP(객체지향)의 특성 - 다형성(polymorphism) (0) | 2022.06.06 |
[C++] OOP(객체지향)의 특성 - 캡슐화(encapsulation) (0) | 2022.06.06 |
[C++] OOP(객체지향)의 특성 - 상속성(inheritance) (0) | 2022.06.06 |
@Return :: Return
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!