


Программирование
+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;
}