假设我有一辆车,有引擎和收音机。我想在发动机启动时启动收音机,并且想在发动机超过一定温度时摧毁汽车。在Thinking in C++一书中,有一个组合示例帮助了我。我的想法是相似的:
class Engine
{
public:
int temperature;
void start()
{
temperature = 15
}
void rev()
{
temperature += 2;
}
}
class Radio
{
public:
void open() {}
}
class Car
{
public:
~Car();
Engine engine;
Radio radio;
}
我知道我可以手动实现:
main()
{
Car car;
car.engine.start();
car.radio.open();
while(car != NULL)
{
car.engine.rev();
if(car.engine.temperature > 50)
{
delete(&car);
}
}
}
我可能有语法错误,这并不重要。我的问题是:如何自动创建类之间的所有通信,以便
main()
{
Car car;
while(car!= NULL)
{
car.engine.rev();
}
做同样的工作?我还尝试了继承和虚函数来创建通信,但失败了。