Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- using namespace std;
- // Базовий клас "Замовник"
- class Zamovnyk {
- protected:
- string name;
- string contactInfo;
- public:
- // Конструктор з параметрами
- Zamovnyk(string n, string contact) : name(n), contactInfo(contact) {}
- // Метод для виведення інформації
- virtual void info() const {
- cout << "Ім'я замовника: " << name << endl;
- cout << "Контактна інформація: " << contactInfo << endl;
- }
- // Віртуальний деструктор
- virtual ~Zamovnyk() {}
- };
- // Похідний клас "Підприємство"
- class Pidpryiemstvo : public Zamovnyk {
- private:
- string companyName;
- string edrpouCode;
- public:
- // Конструктор з параметрами
- Pidpryiemstvo(string n, string contact, string compName, string code)
- : Zamovnyk(n, contact), companyName(compName), edrpouCode(code) {}
- // Перевизначений метод для виведення інформації
- void info() const override {
- Zamovnyk::info();
- cout << "Назва підприємства: " << companyName << endl;
- cout << "Код ЄДРПОУ: " << edrpouCode << endl;
- }
- };
- // Похідний клас "Приватна особа"
- class PryvatnaOsoba : public Zamovnyk {
- private:
- string taxID;
- public:
- // Конструктор з параметрами
- PryvatnaOsoba(string n, string contact, string id)
- : Zamovnyk(n, contact), taxID(id) {}
- // Перевизначений метод для виведення інформації
- void info() const override {
- Zamovnyk::info();
- cout << "Ідентифікаційний номер (ІНН): " << taxID << endl;
- }
- };
- // Функція для демонстрації конструктора копіювання
- void demoCopyConstructor(const Zamovnyk& z) {
- cout << "Демонстрація конструктора копіювання:" << endl;
- z.info();
- }
- int main() {
- // b. Ініціалізація об'єктів довільними даними
- Pidpryiemstvo company("Іван Петров", "ivpetrov@gmail.com", "ТОВ \"Ромашка\"", "12345678");
- PryvatnaOsoba individual("Оксана Коваленко", "okovalenko@gmail.com", "987654321");
- // Виведення інформації про підприємство
- cout << "Інформація про підприємство:" << endl;
- company.info();
- // Виведення інформації про приватну особу
- cout << "\nІнформація про приватну особу:" << endl;
- individual.info();
- // c. Демонстрація конструктора копіювання
- cout << "\n--- Конструктор копіювання ---\n";
- demoCopyConstructor(company); // Виклик конструктора копіювання для об'єкта "company"
- demoCopyConstructor(individual); // Виклик конструктора копіювання для об'єкта "individual"
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement