#include #include class Counter { private: int count; public: Counter() : count(0) {} // Constructor initializes count to 0 void exec() { count++; } int getCount() const { return count; } }; class Counter_IF { private: Counter counterInstance; // Instance of Counter public: void exec() { counterInstance.exec(); // Call exec on the Counter instance } int getCount() const { return counterInstance.getCount(); // Retrieve count from the Counter instance } }; void printCounters(const std::vector& counters) { std::cout << "---\n"; for (std::size_t i = 0; i < counters.size(); i++) { std::cout << "Counter " << i << " count: " << counters[i].getCount() << std::endl; } } // Type your code here, or load an example. int main() { std::vector counters; // five counters to play with counters.resize(5); // Call exec on some of the counters counters[0].exec(); counters[1].exec(); counters[1].exec(); counters[2].exec(); counters[2].exec(); counters[2].exec(); // Display the counts of all counters printCounters(counters); // create three new ones counters.clear(); // destructs current counters counters.resize(3); // creates new ones into the same memory // Call exec on some of the counters counters[0].exec(); counters[0].exec(); counters[2].exec(); // Display the counts of all counters printCounters(counters); return 0; }