목적
1. 헤더 파일과 코드 파일을 분리하여 작성하는 방법을 익힌다.
2. Class 개념을 함께 익힌다.
코드
배터리를 관리하는 코드
1. 배터리의 초기값은 100
2. 배터리를 사용하면 -5, 배터리를 충전하면 -7을 하여 반영.
Battery.h
#ifndef Battery_H_
#define Battery_H_
class Battery
{
private:
int charge;
public:
Battery(int charge = 100)
{
this->charge = charge;
};
int getCharge()
{
return charge;
}
int getUse();
int getCharging();
};
#endif
생성자로 배터리의 충전량을 100으로 초기화 해주고
밑에 있는 기능을 구현할 멤버 함수를 작성했습니다.
기능을 클래스에 구현해도 되는 것으로 알고 있지만 다른 코드 파일에 작성해보았습니다.
BatteryState.cpp
#include "Battery.h"
using namespace std;
int Battery::getUse()
{
return charge -= 5;
}
int Battery::getCharging()
{
return charge += 7;
}
배터리의 사용과 충전을 처리하는 코드입니다.
Main.cpp
#include <iostream>
#include "Battery.h"
using namespace std;
int main()
{
int num;
Battery b;
cout << "현재 배터리 용량 : " << b.getCharge() << endl;
cout << "배터리를 사용하시려면 1번, 배터리를 충전하시려면 2번." << endl;
cout << "그 외의 키를 누르면 종료." << endl;
while (true)
{
cin >> num;
if (num == 1) {
cout << "배터리 사용. 남은 용량 : " << b.getUse() << endl;
continue;
}
else if (num == 2) {
cout << "배터리 충전. 남은 용량 : " << b.getCharging() << endl;
continue;
}
else
cout << "종료."<< endl;
break;
}
return 0;
}
배터리 클래스를 사용하는 메인 코드입니다.
배터리를 사용하는 기능은 숫자 1키를 누르고
충전하는 기능은 숫자 2키를 눌러 작동되게 했습니다.
물론 반복 입력을 받을 수 있게 만들어
사용되고 충전되면서 변하는 값이 잘 반영이 되는지
확인할 수 있게 만들어봤습니다.
코드 리뷰
글을 작성하다가 알게된 것은 위의 코드로는 충전만 하여 초기값을 넘어가거나
사용만하여 음수의 값으로 갈 수 있겠다는 것이 떠올랐습니다.
블로그에는 이렇게 수정하지 않고 글을 남기지만
이제 막 C++ 공부하시는 분들도
위의 코드를 수정하는 방법을 생각해보시는 것도 좋겠습니다.
감사합니다.
'C++' 카테고리의 다른 글
Visual Studio의 메모리 할당 (0) | 2024.12.31 |
---|---|
정적 변수 & 전역 변수 차이 (0) | 2024.12.30 |
'상수 포인터'와 '포인터 상수'의 차이 (0) | 2024.12.27 |
포인터 변수 (0) | 2024.12.26 |
C++ 튜토리얼 (0) | 2024.12.23 |