Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

12пми / Вариант 20, абстр.класс

.cpp
Скачиваний:
17
Добавлен:
02.06.2015
Размер:
1.88 Кб
Скачать
// 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пми