Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- HEADER
- #ifndef ANALYSIS_H_
- #define ANALYSIS_H_
- #include <string>
- class Analysis
- {
- private:
- std::string m_name;
- int m_date; //дата основания
- bool m_abel; //получал ли кто-либо Абелевскую премию за открытия в этой области
- public:
- Analysis();
- Analysis(const std::string&, const int, bool);
- Analysis(const Analysis&);
- ~Analysis();
- Analysis& operator=(Analysis math);
- };
- #endif
- SOURCE
- #include <iostream>
- #include "Analysis.h"
- Analysis::Analysis(): m_name("none"), m_date(0), m_abel(false)
- {
- std::cout << "Constructor without params." << std::endl << "Name = " << m_name << ", date = " << m_date << ", abel = " << m_abel << "." << std::endl;
- }
- Analysis::Analysis(const std::string& m_name, const int m_date, bool m_abel)
- {
- this->m_name = m_name;
- this->m_date = m_date;
- this->m_abel = m_abel;
- std::cout << "Constructor with params." << std::endl << "Name = " << m_name << ", date = " << m_date << ", abel = " << m_abel << "." << std::endl;
- }
- Analysis::Analysis(const Analysis& mat_an)
- {
- m_name = mat_an.m_name;
- m_date = mat_an.m_date;
- m_abel = mat_an.m_abel;
- std::cout << "Copy constructor." << std::endl << "Name = " << m_name << ", date = " << m_date << ", abel = " << m_abel << "." << std::endl;
- }
- Analysis::~Analysis()
- {
- std::cout << "Destructor for object with values:" << std::endl << "Name = " << m_name << ", date = " << m_date << ", abel = " << m_abel << "." << std::endl;
- }
- Analysis& Analysis::operator=(Analysis math)
- {
- this->m_name = math.m_name;
- this->m_date = math.m_date;
- this->m_abel = math.m_abel;
- std::cout << "Operator =." << std::endl << "Name = " << m_name << ", date = " << m_date << ", abel = " << m_abel << "." << std::endl;
- return *this;
- }
- REALIZ
- #include <iostream>
- #include "Analysis.h"
- using namespace std;
- int main()
- {
- int n, part;
- cout << "Enter the mas size: " << endl;
- cin >> n;
- Analysis* mas = new Analysis[n];
- Analysis* din = new Analysis;
- for (int i = 0; i < n; i++)
- {
- cout << "This is " << i + 1 << " element." << endl << "For creating object with params press 1, for creating with copy press 2." << endl << "For creating object without params press 3, for exit press 4." << endl;
- cin >> part;
- switch (part) {
- case 1: {
- string name; int date; bool abel;
- cout << "Enter name: ";
- cin >> name;
- cout << "Enter date: ";
- cin >> date;
- cout << "Enter abel: ";
- cin >> abel;
- mas[i] = Analysis(name, date, abel);
- break; }
- case 2:
- int pos;
- cout << "Enter position of copied element: ";
- cin >> pos;
- while ((pos > n) || (pos < 1))
- {
- cout << "Error. Please, try again." << endl;
- cin >> pos;
- }
- mas[i] = Analysis(mas[pos - 1]);
- break;
- case 3:
- //Analysis I_love_matanchek = Analysis();
- break;
- case 4:
- i = n;
- break;
- default: cout << "Error. Please, try again.";
- i--;
- break;
- }
- }
- cout << "If you want to delete all objects, enter 'y', else enter 'n'" << endl;
- char answer;
- cin >> answer;
- if (answer == 'y')
- {
- for (int i = 0; i < n; i++)
- {
- mas[i].~Analysis();
- }
- delete din;
- }
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement