Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <iomanip>
- #include <stdio.h>
- #include <math.h>
- #include <conio.h>
- using namespace std;
- class GeometricalBody //класс геометрическое тело
- {
- protected: std::string name; //класс содержит защищенную переменную name типа string
- public: GeometricalBody()
- {
- this -> name = "Default name";
- }
- public: GeometricalBody(std::string name)
- {
- this -> name = name; //хранят наименование объекта этого класса
- }
- public: void print()
- {
- cout << this -> name; //член-функция print() для вывода на экран этого наименования
- }
- };
- class Prism_Inscribed_Rectilineal_Triangular : GeometricalBody //прямая призма с основанием в виде равнобедренного треугольника, вписанного в окружность
- {
- private: double a;
- public: void Init(double a, std::string name) //метод Init() для инициализации членов-данных класса
- {
- this -> a = a;
- this -> name = name;
- }
- public: double BaseArea()
- {
- return ((a*a)*(sqrt((double)(3/4))));
- }
- public: double SideArea()
- {
- return ((a+a+a)*a);
- }
- public: double FullArea()
- {
- return Prism_Inscribed_Rectilineal_Triangular::BaseArea() +
- Prism_Inscribed_Rectilineal_Triangular::BaseArea() +
- Prism_Inscribed_Rectilineal_Triangular::SideArea();
- }
- };
- void main()
- {
- //раннее связывание
- Prism_Inscribed_Rectilineal_Triangular prism_static;
- prism_static.Init(5,"Parametr1");
- cout << "Full area: " << prism_static.FullArea() << endl << "Size area: " << prism_static.SideArea() << endl << endl;
- //позднее связывание
- Prism_Inscribed_Rectilineal_Triangular *prism_dinamic = new Prism_Inscribed_Rectilineal_Triangular();
- prism_dinamic -> Init(8,"Parametr2");
- cout << "Full area (index): " << prism_dinamic -> FullArea() << endl << "Size area: " << prism_dinamic -> SideArea() << endl << endl;
- getch();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement