aboutsummaryrefslogtreecommitdiff
path: root/week03/Exercise4.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'week03/Exercise4.cpp')
-rw-r--r--week03/Exercise4.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/week03/Exercise4.cpp b/week03/Exercise4.cpp
new file mode 100644
index 0000000..006b196
--- /dev/null
+++ b/week03/Exercise4.cpp
@@ -0,0 +1,36 @@
+struct Bus {
+ unsigned int passengerCapacity;
+ unsigned int mileage;
+};
+
+struct BusWarehouse {
+private:
+ Bus* buses;
+ int maxSize;
+ int lastIndex;
+
+public:
+ BusWarehouse(int maxSize) {
+ this->maxSize = maxSize;
+ buses = new Bus[maxSize];
+ lastIndex = 0;
+ }
+
+ ~BusWarehouse() {
+ delete[] buses;
+ }
+
+ void AddBus(const Bus& bus) {
+ if (maxSize == lastIndex) return;
+ buses[lastIndex++] = bus;
+ }
+};
+
+int main() {
+ Bus b1 = { 20, 100000 };
+ Bus b2 = { 50, 90812 };
+
+ BusWarehouse bw = BusWarehouse(2);
+ bw.AddBus(b1);
+ bw.AddBus(b2);
+}