??????????????????????????????????NAGLOWEK // stdafx.h: dołącz plik do standardowych systemowych plików dołączanych, // lub specyficzne dla projektu pliki dołączane, które są często wykorzystywane, ale // są rzadko zmieniane // #pragma once #include "targetver.h" #include #include class Figure { public: virtual double area() = 0; }; class Circle : public Figure { public: double r; double area(); Circle(); }; class Rectangle : public Figure { public: double a, b; double area(); Rectangle(); }; class Square : public Figure { public: double a; double area(); Square(); }; // TODO: W tym miejscu odwołaj się do dodatkowych nagłówków wymaganych przez program ////////////////////////////////////////////////////////////////////CPPP // SEM3LAB5_fig.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include using namespace std; int main() { int size; cout << "podaj ilosc figur" << endl; cin >> size; Figure ** wsk_fig; wsk_fig = new Figure*[size]; int licznik = 0; char key; while (licznik < size) { cout << "podaj jaka chcesz dodac figure c - kolo, r - prostokat, s - kwadrat " << endl; cin >> key; switch (key) { case 'c': wsk_fig[licznik] = new Circle; break; case 's': wsk_fig[licznik] = new Square; break; case 'r': wsk_fig[licznik] = new Rectangle; break; default: cout << "zla literka :(" << endl; break; } licznik++; } double suma_pol = 0; for (int i = 0; i < size; i++) { suma_pol += wsk_fig[i]->area(); } cout << "suma pol = " << suma_pol << endl; system("pause"); for (int i = 0; i < size; i++) { delete wsk_fig[i]; } delete wsk_fig; return 0; } double Circle :: area() { return r * r*3.1415; } double Rectangle :: area() { return a * b; } double Square :: area() { return a * a; } Square :: Square() { cout << "podaj dlugosc boku" << endl; cin >> a; } Rectangle::Rectangle() { cout << "podaj dlugosc bokow" << endl; cin >> a; cin >> b; } Circle::Circle() { cout << "podaj promien" << endl; cin >> r; }