内容:
说明:
1、首先输入房间数
2、按数输入房间类型、床位、浴室等个数
3、返回利润
示例代码:
// HotelPrices.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class HotelRoom
{
public:
HotelRoom( int bedrooms, int bathrooms )
: bedrooms_( bedrooms ), bathrooms_( bathrooms ) {}
virtual int get_price()
{
return 50 * bedrooms_ + 100 * bathrooms_;
}
private:
int bedrooms_;
int bathrooms_;
};
class HotelApartment : public HotelRoom
{
public:
HotelApartment( int bedrooms, int bathrooms )
: HotelRoom( bedrooms, bathrooms )
{
bedrooms_ = bedrooms;
bathrooms_ = bathrooms;
}
int get_price()
{
return HotelRoom::get_price() + 100;
}
private:
int bedrooms_;
int bathrooms_;
};
//by zhaocl
int main()
{
int n;
cin >> n;
vector<HotelRoom*> rooms;
for( int i = 0; i < n; ++i )
{
string room_type;
int bedrooms;
int bathrooms;
cin >> room_type >> bedrooms >> bathrooms;
if( room_type == "standard" )
{
rooms.push_back( new HotelRoom( bedrooms, bathrooms ) );
}
else
{
rooms.push_back( new HotelApartment( bedrooms, bathrooms ) );
}
}
int total_profit = 0;
for( auto room : rooms )
{
total_profit += room->get_price();
}
cout << total_profit << endl;
for( auto room : rooms )
{
delete room;
}
rooms.clear();
system( "pause" );
return 0;
}
知识点:
1、虚函数重载