Добавил:
Upload
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:12пми / Вариант 20, абстр.класс
.cpp// Lab.work, Pavlova Elena, variant 20
//
#include "stdafx.h"
#include <string>
#include <iostream>
#include <sstream>
using namespace std;
class Book
{
public:
string name;
int pages;
Book(): name("null"), pages(0) {}
Book(string n, int pg) : name(n), pages(pg) {}
virtual float getPages_or_price()=0;
virtual string getFirm_or_size ()=0;
};
class CD: public Book
{
public:
string size;
CD(): Book("Game of Thrones, J.Martin", 563) {}
CD(string n, int pg): Book(n, pg) {size=" Size average";}
float getPages_or_price()
{
return pages;
}
string getFirm_or_size ()
{
return size;
}
};
class Ebook: public Book
{
public:
float price;
string firm;
Ebook(): Book("Stihi", 23) {}
Ebook(string n, int pg): Book(n, pg) {price=pg*2; firm="Firm Buka";}
float getPages_or_price()
{
return price;
}
string getFirm_or_size ()
{
return firm;
}
};
class Coursebook: public Book
{
public:
float price;
string size;
Coursebook(): Book("Stihi", 23) {}
Coursebook(string n, int pg): Book(n, pg) {price=pg*2; size="Size A4";}
string getFirm_or_size ()
{
return size;
}
float getPages_or_price()
{
return price;
}
};
void main()
{
Book* book [6];
book[0]=new CD("English in Use", 123);
book[1]=new Ebook("English in Use2", 150);
book[2]=new Coursebook("English in Use3", 140);
book[3]=new CD("Round Up", 103);
book[4]=new Ebook("Round Up2", 640);
book[5]=new Coursebook("Round Up3", 340);
for (int i=0; i<6; i++)
{
cout << "Name: " << book[i]->name <<endl;
cout << "Firm_or_size: " << book[i]->getFirm_or_size () << endl;
cout << "Pages_or_price: " << book[i]->getPages_or_price() << endl;
}
for (int i=0; i<6; i++)
{
delete book[i];
}
}
Соседние файлы в папке 12пми