◈ 이 글은 강의를 위하여 제가 직접 작성한 내용입니다. 따라서 퍼가실 경우, 출처를 명확히 해주시기 바랍니다!!
◈ This ariticle was written by me for teaching. So if you want to copy this article, please clarify the source!!
◈ This ariticle was written by me for teaching. So if you want to copy this article, please clarify the source!!
>> 아래와 같은 특징을 가지는 Car클래스를 작성하시오.
- int형 변수 speed를 가져야 하며 외부에서 접근이 불가능하도록 한다.
- 생성자는 int형 값을 하나만 받아서 speed변수를 초기화해주도록 한다.(기본생성자는 X)
- int형 값을 입력으로 받아 스피드를 올리는 speedUp과 스피드를 낮추는 speedDown 멤버함수를 작성한다.
  두 함수 모두 입력으로 받는 스피드값은 0보다 크고 30보다 작아야하며, 최대스피드는 200, 최하 스피드는 0이 되도록 작성하시오.
- 현재 speed값을 반환하는 currentSpeed멤버함수를 작성하시오.
- 출력 연산자를 오버로딩하여 cout을 이용해 현재 스피드를 출력할 수 있도록 하시오.
- int형 변수 speed를 가져야 하며 외부에서 접근이 불가능하도록 한다.
- 생성자는 int형 값을 하나만 받아서 speed변수를 초기화해주도록 한다.(기본생성자는 X)
- int형 값을 입력으로 받아 스피드를 올리는 speedUp과 스피드를 낮추는 speedDown 멤버함수를 작성한다.
  두 함수 모두 입력으로 받는 스피드값은 0보다 크고 30보다 작아야하며, 최대스피드는 200, 최하 스피드는 0이 되도록 작성하시오.
- 현재 speed값을 반환하는 currentSpeed멤버함수를 작성하시오.
- 출력 연산자를 오버로딩하여 cout을 이용해 현재 스피드를 출력할 수 있도록 하시오.
main() 함수는 아래와 같이 작성하고, 클래스는 직접 작성하라.
int main() { Car car1(0); cout << car1; car1.speedUp(10); car1.speedUp(25); cout << car1; car1.speedDown(25); cout << car1; car1.speedDown(10); cout << car1; return 0; }
전체 소스코드.
// 함수 디폴트 인자값에 대해서 이해한다. /* >> 아래와 같은 특징을 가지는 Car클래스를 작성하시오. - int형 변수 speed를 가져야 하며 외부에서 접근이 불가능하도록 한다. - 생성자는 int형 값을 하나만 받아서 speed변수를 초기화해주도록 한다.(기본생성자는 X) - int형 값을 입력으로 받아 스피드를 올리는 speedUp과 스피드를 낮추는 speedDown 멤버함수를 작성한다. 두 함수 모두 입력으로 받는 스피드값은 0보다 크고 30보다 작아야하며, 최대스피드는 200, 최하 스피드는 0이 되도록 작성하시오. - 현재 speed값을 반환하는 currentSpeed멤버함수를 작성하시오. - 출력 연산자를 오버로딩하여 cout을 이용해 현재 스피드를 출력할 수 있도록 하시오. */ #includeusing namespace std; class Car { private: int speed; public : Car(int _speed=0):speed(_speed){} ~Car(){} void speedUp(int _speed=10); void speedDown(int _speed=10); int currentSpeed() const; friend ostream& operator << (ostream& os,const Car& car); }; void Car::speedUp(int _speed) { if(_speed > 0 && _speed < 30) { speed += _speed; if(speed > 200) speed = 200; } } void Car::speedDown(int _speed) { if(_speed <= 0 || _speed >= 30) return; speed -= _speed; if(speed < 0) speed = 0; } //현재 속도 int Car::currentSpeed() const { return speed; } ostream& operator << (ostream& os,const Car& car) { if(car.currentSpeed() > 0) { os << "이 자동차는 현재 " << car.speed << "km/h" << "로 달리고 있습니다." << endl; }else{ os << "이 자동차는 현재 정지해 있습니다." << endl; } return os; } int main() { Car car1(0); cout << car1; car1.speedUp(10); car1.speedUp(25); cout << car1; car1.speedDown(25); cout << car1; car1.speedDown(10); cout << car1; return 0; }