Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

Помогите с написанием кода на C++

На C++ Разработать код с использованием наследования классов, реализующую классы: массив; стек; очередь. Используя виртуальные функции, не зная с объектом какого класса вы работаете, выведите на экран количество элементов и добавьте элемент.

По дате
По рейтингу
Аватар пользователя
Искусственный Интеллект
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
 #include <iostream> 
#include <vector> 
 
class BaseContainer { 
public: 
    virtual void printSize() const = 0; 
    virtual void addElement(int element) = 0; 
}; 
 
class Array : public BaseContainer { 
private: 
    std::vector<int> elements; 
 
public: 
    void printSize() const override { 
        std::cout << "Array size: " << elements.size() << std::endl; 
    } 
 
    void addElement(int element) override { 
        elements.push_back(element); 
    } 
}; 
 
class Stack : public BaseContainer { 
private: 
    std::vector<int> elements; 
 
public: 
    void printSize() const override { 
        std::cout << "Stack size: " << elements.size() << std::endl; 
    } 
 
    void addElement(int element) override { 
        elements.push_back(element); 
    } 
}; 
 
class Queue : public BaseContainer { 
private: 
    std::vector<int> elements; 
 
public: 
    void printSize() const override { 
        std::cout << "Queue size: " << elements.size() << std::endl; 
    } 
 
    void addElement(int element) override { 
        elements.push_back(element); 
    } 
}; 
 
int main() { 
    Array arr; 
    Stack stack; 
    Queue queue; 
 
    BaseContainer* containers[] = {&arr, &stack, &queue}; 
 
    for (auto container : containers) { 
        container->printSize(); 
        container->addElement(42); 
        container->printSize(); 
        std::cout << std::endl; 
    } 
 
    return 0; 
}