聚合关系的两个类不需要头文件包含,而组合关系的两个类则需要头文件包含。
即:以下场合需要包含头文件:
1、A与B是组合关系。即B是A的元件类。在程序实现上,B作为A的一个属性而存在。
示例代码如下:
#pragma once
#include "Leg.h"
class Hourse
{
Leg leg;
};
#include "Leg.h"
class Hourse
{
Leg leg;
};
2、A与B是依赖关系,特指B作为A中某个方法的形参(按引用传递或按值传递)。
以下则不需要头文件包含:
1、A与B是聚合关系。即B是A的工厂。在程序实现上,B类型的指针作为A的一个属性而存在。
这时只需要在A中声明一下B是一个类即可。
示例代码如下:
#pragma once
class Printer;
class Computer
{
Printer* printer;
};
class Printer;
class Computer
{
Printer* printer;
};