Oop - Differencebetween Aggregation and Compositio
Oop - Differencebetween Aggregation and Compositio
class Engine {
public:
void start() {
std::cout << "Engine started" << std::endl;
}
};
class Car {
private:
std::vector<Engine*> engines;
public:
void addEngine(Engine* engine) {
engines.push_back(engine);
}
void startCar() {
std::cout << "Starting the car..." << std::endl;
for (Engine* engine : engines) {
engine->start();
}
}
};
int main() {
Engine engine1, engine2;
Car car;
car.addEngine(&engine1);
car.addEngine(&engine2);
car.startCar();
return 0;
}
COMPOSTION
#include <iostream>
class Engine {
public:
void start() {
std::cout << "Engine started" << std::endl;
}
};
class Car {
private:
Engine engine;
public:
void startCar() {
std::cout << "Starting the car..." << std::endl;
engine.start();
}
};
int main() {
Car car;
car.startCar();
return 0;
}